よく使う割に使いこなせていないので再勉強。
まずは –help で指定可能なオプションを確認。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ ps --help ********* simple selection ********* ********* selection by list ********* -A all processes -C by command name -N negate selection -G by real group ID (supports names) -a all w/ tty except session leaders -U by real user ID (supports names) -d all except session leaders -g by session OR by effective group name -e all processes -p by process ID -q by process ID (unsorted & quick) T all processes on this terminal -s processes in the sessions given a all w/ tty, including other users -t by tty g OBSOLETE -- DO NOT USE -u by effective user ID (supports names) r only running processes U processes for specified users x processes w/o controlling ttys t by tty *********** output format ********** *********** long options *********** -o,o user-defined -f full --Group --User --pid --cols --ppid -j,j job control s signal --group --user --sid --rows --info -O,O preloaded -o v virtual memory --cumulative --format --deselect -l,l long u user-oriented --sort --tty --forest --version -F extra full X registers --heading --no-heading --context --quick-pid ********* misc options ********* -V,V show version L list format codes f ASCII art forest -m,m,-L,-T,H threads S children in sum -y change -l format -M,Z security data c true command name -c scheduling class -w,w wide output n numeric WCHAN,UID -H process hierarchy |
自分のプロセスを表示する。
1 2 3 4 |
$ ps PID TTY TIME CMD 28603 pts/0 00:00:00 bash 28795 pts/0 00:00:00 ps |
l オプションを付けるとロング形式で表示される。
1 2 3 4 |
$ ps l F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 0 1001 28603 28602 20 0 115440 2072 do_wai Ss pts/0 0:00 -bash 0 1001 28847 28603 20 0 153236 1512 - R+ pts/0 0:00 ps l |
良く使われるのは aux オプション。全ユーザが実行しているプロセスを表示する。
- a – 端末を持つ全てのプロセスを表示する
- x – 端末を持たない全てのプロセスを表示する
- u – ユーザー指向のフォーマット(読みやすさ優先)で表示する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1210 0.0 0.0 0 0 ? S< Apr16 0:00 [xfs-eofblocks/v] root 1211 0.0 0.0 0 0 ? S Apr16 2:58 [xfsaild/vda1] root 1298 0.0 0.3 37236 3744 ? Ss Apr16 0:08 /usr/lib/systemd/systemd-journald root 1610 0.0 0.0 55520 904 ? S<sl Apr16 0:00 /sbin/auditd root 2272 0.0 0.0 0 0 ? S< Apr16 0:00 [ttm_swap] root 2435 0.0 0.0 0 0 ? S< Apr16 0:00 [kvm-irqfd-clean] rpc 2454 0.0 0.1 69264 1196 ? Ss Apr16 0:01 /sbin/rpcbind -w root 2456 0.0 0.1 26376 1748 ? Ss Apr16 0:05 /usr/lib/systemd/systemd-logind polkitd 2458 0.0 1.3 612636 13764 ? Ssl Apr16 0:00 /usr/lib/polkit-1/polkitd --no-debug dbus 2461 0.0 0.2 58096 2376 ? Ss Apr16 0:14 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-act ivation root 2462 0.0 0.1 195096 1248 ? Ssl Apr16 0:00 /usr/sbin/gssproxy -D chrony 2480 0.0 0.1 117784 1804 ? S Apr16 0:00 /usr/sbin/chronyd root 2500 0.0 2.8 358088 28552 ? Ssl Apr16 0:00 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid root 3017 0.0 1.8 573924 19256 ? Ssl Apr16 1:19 /usr/bin/python2 -Es /usr/sbin/tuned -l -P root 3019 0.0 1.7 422948 17936 ? Ss Apr16 0:35 /usr/sbin/httpd -DFOREGROUND mysql 3062 0.0 0.1 113308 1624 ? Ss Apr16 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr mysql 3282 0.0 11.9 981120 121312 ? Sl Apr16 4:55 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64 |
-L オプションを指定すればスレッドを表示できる。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ ps aux -L | grep httpd root 3019 3019 0.0 1 1.7 422948 17936 ? Ss Apr16 0:35 /usr/sbin/httpd -DFOREGROUND apache 18408 18408 0.0 1 2.4 432912 24628 ? S Apr21 0:01 /usr/sbin/httpd -DFOREGROUND apache 18457 18457 0.0 1 2.2 430860 22516 ? S Apr21 0:01 /usr/sbin/httpd -DFOREGROUND apache 18827 18827 0.0 1 2.2 430796 22476 ? S Apr21 0:01 /usr/sbin/httpd -DFOREGROUND apache 21353 21353 0.0 1 2.6 436388 26772 ? S Apr22 0:01 /usr/sbin/httpd -DFOREGROUND apache 24016 24016 0.0 1 2.4 432972 24612 ? S Apr23 0:01 /usr/sbin/httpd -DFOREGROUND apache 24564 24564 0.0 1 2.2 430668 22364 ? S Apr23 0:01 /usr/sbin/httpd -DFOREGROUND apache 25239 25239 0.0 1 1.9 428628 19964 ? S Apr23 0:00 /usr/sbin/httpd -DFOREGROUND apache 25249 25249 0.0 1 2.1 430588 21476 ? S Apr23 0:00 /usr/sbin/httpd -DFOREGROUND apache 25292 25292 0.0 1 1.1 423348 12144 ? S Apr23 0:00 /usr/sbin/httpd -DFOREGROUND apache 25293 25293 0.0 1 1.2 423480 12236 ? S Apr23 0:00 /usr/sbin/httpd -DFOREGROUND |
grepで絞る代わりに -C オプションでコマンド指定すればヘッダが表示できる。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ ps aux -C httpd -L USER PID LWP %CPU NLWP %MEM VSZ RSS TTY STAT START TIME COMMAND root 3019 3019 0.0 1 1.7 422948 17936 ? Ss Apr16 0:35 /usr/sbin/httpd -DFOREGROUND apache 18408 18408 0.0 1 2.4 432912 24628 ? S Apr21 0:01 /usr/sbin/httpd -DFOREGROUND apache 18457 18457 0.0 1 2.2 430860 22516 ? S Apr21 0:01 /usr/sbin/httpd -DFOREGROUND apache 18827 18827 0.0 1 2.2 430796 22476 ? S Apr21 0:01 /usr/sbin/httpd -DFOREGROUND apache 21353 21353 0.0 1 2.6 436388 26772 ? S Apr22 0:01 /usr/sbin/httpd -DFOREGROUND apache 24016 24016 0.0 1 2.4 432972 24612 ? S Apr23 0:01 /usr/sbin/httpd -DFOREGROUND apache 24564 24564 0.0 1 2.2 430668 22364 ? S Apr23 0:01 /usr/sbin/httpd -DFOREGROUND apache 25239 25239 0.0 1 1.9 428628 19964 ? S Apr23 0:00 /usr/sbin/httpd -DFOREGROUND apache 25249 25249 0.0 1 2.1 430588 21476 ? S Apr23 0:00 /usr/sbin/httpd -DFOREGROUND apache 25292 25292 0.0 1 1.1 423348 12144 ? S Apr23 0:00 /usr/sbin/httpd -DFOREGROUND apache 25293 25293 0.0 1 1.2 423480 12236 ? S Apr23 0:00 /usr/sbin/httpd -DFOREGROUND |
カラムの意味
- F – プロセスの状態(16進表記)
00- 終了
01 – システム上の常駐プロセス
02 – 親プロセスからトレースされている
04 – 親プロセスからトレースされている状態で停止している
08 – 起動不可能
10 – プロセスがメモリ上にありイベント終了までロックされている
20- スワップ不可能 - PID – プロセスのID番号
- PPID – 親プロセスのID番号
- S – プロセスの状態表示
- STAT – 複数文字によるプロセスの状態表示
▼1文字目
R – 実行中/実行可能な状態
S – スリープ状態
D – スリープ状態(割り込み不可) (ディスク待ちが多い)
T – 停止またはトレース中(シェルでCtrl+Zキーで停止している時など)
Z – ゾンビプロセス(終了しているのにメモリに残ってしまっているプロセス)
▼2文字目以降
+ – フォアグラウンドのプロセスグループ
s – セッションリーダー
< – 優先度が高いプロセス
N – 優先度が低いプロセス
l – マルチスレッドのプロセス - %CPU – CPUの使用率 (CPU利用時間/実際の時間)
- %MEM – メモリの使用量 (プロセスが確保している物理メモリを百分率で表示)
- VSZ(Virtual Set Size) – プロセスが確保した仮想メモリ領域のサイズ (KB)
- RSS(Resident Set Size) – プロセスが確保した物理メモリ領域のサイズ (KB)
- TIME – CPUの累積使用時間
- STARTED – コマンドが起動した時刻
- NI – nice値(プロセスの優先順位)範囲は-20~19で、19が優先度が一番高い
- COMMAND – コマンド名
- TT – 制御端末(tty)
- UID – 実効ユーザーのID番号
- USER – 実効ユーザーの名前
- GID – 実効グループのID番号
- GROUP – 実効グループの名前
- LWP – 軽量プロセスもしくはスレッドのID
- NLWP – 総スレッド数
参考サイト
Man page of PS
http://linuxjm.osdn.jp/html/procps/man1/ps.1.html
【 ps 】コマンド――実行中のプロセスを一覧表示する:Linux基本コマンドTips(6) – @IT
https://www.atmarkit.co.jp/ait/articles/1603/28/news022.html
psコマンドで表示される内容について調べた – Qiita
https://qiita.com/toshihirock/items/565fe71d778d3ee36b96
psコマンドまとめ – Qiita
https://qiita.com/shell/items/68ed71a7f018e5688f73
psコマンドでスレッドを表示させたり、スレッドごとのCPU使用率を確認する – 元RX-7乗りの適当な日々
https://www.na3.jp/entry/20101219/p1
30 Useful ‘ps Command’ Examples for Linux Process Monitoring
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/