psコマンドをmanで確認するとスレッド情報を取得する場合、以下のオプションがあります。
本資料は、psコマンドを利用してスレッド情報を取得する方法を記します。
PS(1) Linux User’s Manual PS(1) 名前 ps - 現在実行されているプロセスのスナップショットを表示する 書式 ps [options] <snip> スレッド表示 H スレッドをプロセスのように表示する。 -L 可能ならば LWP と NLWP カラムをつけてスレッドを表示する。 -T 可能ならば SPID カラムをつけてスレッドを表示する。 m プロセスの後にスレッドを表示する。 -m プロセスの後にスレッドを表示する。
NLWPが表示されています。
automount, firefox, mysqldがスレッドで動作していることが各員できます。
なお、NLWP (スレッド数), LWP (スレッド ID) をあらわしています。
[sakura@centos ~]$ ps aux -L USER PID LWP %CPU NLWP %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 1 0.0 1 0.0 10364 688 ? Ss 11:19 0:01 init [5] <snip> root 3620 3620 0.0 1 0.0 10248 708 ? S 11:21 0:00 hald-addon-storage: polling /dev/sr0 root 3661 3661 0.0 5 0.0 54428 1484 ? Ssl 11:21 0:00 automount root 3661 3662 0.0 5 0.0 54428 1484 ? Ssl 11:21 0:00 automount root 3661 3663 0.0 5 0.0 54428 1484 ? Ssl 11:21 0:00 automount root 3661 3666 0.0 5 0.0 54428 1484 ? Ssl 11:21 0:00 automount root 3661 3669 0.0 5 0.0 54428 1484 ? Ssl 11:21 0:00 automount <snip> root 4506 4506 0.0 1 0.0 63884 1208 pts/1 S 11:50 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/va mysql 4556 4556 0.1 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4558 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4559 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4560 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4561 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4562 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4563 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4564 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4565 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq mysql 4556 4566 0.0 10 0.6 178352 25348 pts/1 Sl 11:50 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysq 505 4581 4581 6.0 16 4.3 762552 174848 ? Sl 11:50 0:02 /usr/lib64/firefox/firefox 505 4581 4604 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4605 0.1 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4606 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4607 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4608 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4609 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4610 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4612 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4642 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4643 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4645 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4646 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4647 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4650 3.8 16 4.3 762552 174848 ? Dl 11:50 0:01 /usr/lib64/firefox/firefox 505 4581 4681 0.0 16 4.3 762552 174848 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4690 4690 0.0 1 0.0 65640 1004 pts/1 R+ 11:51 0:00 ps aux -L
Hオプションを利用した場合は、以下のように表示されます。
firefoxが全て同じPIDになっているのが確認できます。
[sakura@centos ~]$ ps uxH USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND <snip> 505 4581 0.3 3.6 729800 144068 ? Sl 11:50 0:02 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 1.6 3.6 729800 144068 ? Sl 11:50 0:09 /usr/lib64/firefox/firefox 505 4581 0.0 3.6 729800 144068 ? Sl 11:51 0:00 /usr/lib64/firefox/firefox 505 4692 0.7 0.9 496064 39028 ? S 11:51 0:04 gedit 505 4705 0.0 0.0 66240 1660 pts/3 Ss 11:53 0:00 bash 505 4824 0.0 0.0 65640 1000 pts/3 R+ 12:00 0:00 ps uxH
mオプションを利用場合の出力結果です。
firefoxのみ抜粋しています。
[sakura@centos ~]$ ps ux -m USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND <snip> 505 4581 1.4 3.6 729800 144068 ? - 11:50 0:11 /usr/lib64/firefox/firefox 505 - 0.2 - - - - Sl 11:50 0:02 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 0.0 - - - - Sl 11:50 0:00 - 505 - 1.1 - - - - Sl 11:50 0:09 - 505 - 0.0 - - - - Sl 11:52 0:00 - <snip>
オプション-Tを使用した場合の出力です。
上記と同様にfirefoxのみ抜粋しています。
[sakura@centos ~]$ ps ux -T USER PID SPID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND <snip> 505 4581 4581 0.2 3.6 729800 144080 ? Sl 11:50 0:02 /usr/lib64/firefox/firefox 505 4581 4604 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4605 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4606 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4607 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4608 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4609 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4610 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4612 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4642 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4643 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4645 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4646 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4647 0.0 3.6 729800 144080 ? Sl 11:50 0:00 /usr/lib64/firefox/firefox 505 4581 4650 0.9 3.6 729800 144080 ? Sl 11:50 0:09 /usr/lib64/firefox/firefox 505 4581 4696 0.0 3.6 729800 144080 ? Sl 11:52 0:00 /usr/lib64/firefox/firefox <snip>
man ps内に記載されているSPIDを調べると以下のように記されています。
spid SPID lwp を参照。(別名 lwp, tid)。
したがって、SPIDはLWP(スレッド ID)になります。
以上、psコマンドを利用して各プロセスのスレッド数やスレッドIDを調べる方法を記しました。