Linux で動いているアプリやパッケージなど、プロセスを見ることのできるコマンド ps の便利なオプションまとめ
# すべてのプロセスを詳細に表示 # a 自分以外のユーザーのプロセスも表示 # u 実行中のプロセスをユーザー名と開始時刻を含めて表示 # x 制御端末のないプロセスの情報も表示 # w 表示を拡大。無くてもよい。 ps auxw
各オプションをそれぞれ調べましたの♪
オプション付けずに実行
# 実行中のプロセスを表示 ps
結果は現在のユーザのプロセスが表示されました。
PID TTY TIME CMD 7616 pts/0 00:00:00 su 7617 pts/0 00:00:00 bash 7780 pts/0 00:00:00 mysqld_safe 8491 pts/0 00:00:00 ps
a オプションを付けて実行
# 自分以外のユーザーのプロセスも表示 ps a
結果ですが、、、自分以外のユーザのプロセスが表示されているようには思えません><。。。と思いましたけれど、次の u オプションも付けて、「ps au」としましたらコマンドの「-bash」と「/usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin」が ps を実行した root ユーザ以外でしたの♪
ですから、大丈夫!自分以外のユーザのプロセスも表示されております♪
STAT が追加され、CMD → COMMAND と省略形から省略しない形となったのにあわせて結果も省略しないコマンドとなっております。
- STAT プロセスのステータス。Rは実行可能、Sは停止、Dは割り込み不可の停止、Tは停止またはトレース中、Zはゾンビ・プロセス、Wはスワップ・アウトしたプロセス、Nはナイス値が正であることを表す
- COMMAND 省略しないプロセスのコマンド名
PID TTY STAT TIME COMMAND 7601 pts/0 Ss 0:00 -bash 7616 pts/0 S 0:00 su - 7617 pts/0 S 0:00 -bash 7780 pts/0 S 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/r 8229 pts/0 Sl 0:13 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysq 8493 pts/0 R+ 0:00 ps a
u オプションを付けて実行
# 実行中のプロセスをユーザー名と開始時刻を含めて表示 ps u
結果は、確かにユーザー名と開始時刻を含めて表示されました。ですけれども、それ以上に、CPU 使用率、メモリ使用率、仮想メモリの全サイズ、そして使用中の物理メモリー量が確認できる事が大きいと思いますの。
- %CPU CPU 使用率
- %MEM メモリ使用率
- VSZ 仮想メモリの全サイズ
- RSS 使用中の物理メモリー量
これらの値で、パフォーマンスが確認できますもの!
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 7616 0.0 0.1 3960 1352 pts/0 S Jan17 0:00 su - root 7617 0.0 0.1 3704 1616 pts/0 S Jan17 0:00 -bash root 7780 0.0 0.1 2516 1104 pts/0 S Jan17 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/ root 8500 0.0 0.0 2284 828 pts/0 R+ 00:14 0:00 ps u
x オプションを付けて実行
# 制御端末のないプロセスの情報も表示 ps x
結果は、より多くのプロセスが表示されましたの。制御用の端末の無い、例えば cron などのようです。
といいましても制御用の端末とはなにか?よくわかりませんし、掘り下げることも、ここではいたしません。
とにかく、TTY が「?」のプロセスが、制御用の端末のないプロセスですの♪
- TTY 制御端末の種類および番号
PID TTY STAT TIME COMMAND 1 ? Ss 0:03 init [3] 2 ? S 0:00 [kthreadd/43287] 3 ? S 0:00 [khelper/43287] 91 ? S<s 0:00 /sbin/udevd -d 515 ? Ss 0:00 syslogd -m 0 534 ? Ss 0:00 /usr/sbin/sshd 542 ? Ss 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid 1087 ? Ss 0:08 sendmail: accepting connections 1128 ? Ss 0:01 crond 1136 ? Ss 0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2 1138 ? S 0:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2 4312 ? S 0:27 python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf 7598 ? Ss 0:00 sshd: oki2a24 [priv] 7616 pts/0 S 0:00 su - 7617 pts/0 S 0:00 -bash 7671 ? Ss 0:01 /usr/sbin/httpd 7780 pts/0 S 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/r 8508 pts/0 R+ 0:00 ps x
w オプションを付けて実行
# 1行追加して表示を拡大する。wを増やすことによって行数をさらに増やして実行中のプロセスを表示 ps w
結果ですけれども、w を増やせば増やすほど COMMAND に表示される情報が増えていきましたの♪
このオプションはディスプレイの幅に余裕があるときにつけるような形が良いと思いましたの。
もしくは、普段は付けないで、コマンド内容をもっと詳しく知りたいときに w オプションを付ける、そのような運用がよいと思いました。
PID TTY STAT TIME COMMAND 7616 pts/0 S 0:00 su - 7617 pts/0 S 0:00 -bash 7780 pts/0 S 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/r 8514 pts/0 R+ 0:00 ps w
おわりに
CentOS で今動いているプロセスを調べるのには ps コマンドだ!と教わって以来、なんとなく使ってまいりました。
また、先日の投稿でも、ps auxw が大活躍いたしました。
今回、あらためて ps を見直しました。スッキリしましたの♪
参考にさせていただいたページです。ありがとう存じます♪
以上です。