プロセスの稼働状況を表示 ~psコマンド~
本記事の対象者
LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。
今回の内容
今回は、psコマンドについて解説します。プロセスがちゃんと立ち上がっているか確認したり、動作不良の原因を突き止めたり、不要なプロセスが起動していないか監視したりなど様々な用途があります。
ps
「ps」コマンドは、プロセスの稼働状況の確認に使用します。
プロセスとはメモリ上で実行中のひとつひとつのプログラムのことです。プロセスには固有のPIDが割り振られます。
lsコマンドを実行すれば、lsコマンドのプロセスが起動します。ひとつのコマンドに対して立ち上がるプロセスはひとつとは限りません。ユーザー側から見た一行のコマンドの実行単位は「ジョブ」と表現されますが、ひとつのジョブの中に複数のプロセスが含まれていることもあるということです。
思ったようにジョブが実行されていないとき、動作が緩慢になってしまっている時などはこの「プロセス」を確認することで解決の手がかりが見つかることもあります。
プロセスそのものについてはこちらを参考にしてください。
psコマンド | |
---|---|
意味 | 現在実行されているプロセスを確認する |
書式 | ps[オプション] |
主なオプションは以下です。psコマンドは、「-」のあるオプションとないオプションがありますが、Linuxでは「-」をつけないオプションが推奨されます。
オプション | 説明 |
---|---|
a | 他のユーザーのプロセスも表示する。 |
f | プロセスを親子関係を明らかにしながら階層表示する。 |
u | ユーザー名も表示する。 |
x | 制御端末のない、デーモンなどのプロセスも表示する。 |
-e | すべてのプロセスを表示する。 |
-l | 詳細な情報を表示する。 |
[user@localhost ~]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 1426 1425 0 80 0 - 3009 do_wai pts/0 00:00:00 bash 0 T 1000 2280 1426 0 80 0 - 3225 do_sig pts/0 00:00:00 top 0 R 1000 2380 1426 0 80 0 - 3110 - pts/0 00:00:00 ps [user@localhost ~]# kill -9 1426 [1] + Killed top [user@localhost ~]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 1426 1425 0 80 0 - 3009 do_wai pts/0 00:00:00 bash 0 R 1000 2380 1426 0 80 0 - 3110 - pts/0 00:00:00 ps
psコマンドでtopコマンドによるプロセスが立ち上がっていることを確認し、killコマンドによってプロセスを終了させました。
なお、各項目の意味は以下です。
試験ではすべての項目についての理解が求められるわけではありません。
項目名 | 意味 |
---|---|
UID | 起動ユーザーID |
PID | プロセスID(プロセスごとに固有) |
PPID | 親プロセスID |
C | CPU使用率 |
PRI | プロセスの優先度 |
NI | プロセスの優先度を表すNice値 |
TTY | 起動したTTY端末 |
TIME | コマンドの実行時間 |
CMD | コマンド名 |
[user@localhost ~]# ps xf PID TTY STAT TIME COMMAND 1705 pts/0 S 0:00 su root 1706 pts/0 S 0:00 \_ bash 1761 pts/0 R+ 0:00 \_ ps f ...(略) [user@localhost ~]# pstree systemdqwqModemManagerqqq2*[{ModemManager}] tqNetworkManagerqqq2*[{NetworkManager}] tqaccounts-daemonqqq2*[{accounts-daemon}] tqacpid tqavahi-daemonqqqavahi-daemon tqcolordqqq2*[{colord}] tqcron tqcups-browsedqqq2*[{cups-browsed}] tqcupsdqqqdbus tqdbus-daemon tqgdm3qwqgdm-session-worqwqgdm-x-sessionqwqXorgqqq{Xorg} ...(略)
ツリー形式でプロセス一覧を表示します。「pstree」コマンドも同様の働きをします。
まとめ
今回は、稼働中のプロセスを表示する「ps」コマンドを解説しました。
プロセスの稼働状況の把握は、実務でも非常に使う機会が多いので、使い方をしっかり理解しておきましょう。
プロセス確認の別のコマンドとして「tree」コマンドもありますので、確認してください。
最後に確認問題で今回学習した内容を是非確かめてください。
確認問題
システムで実行されているすべてのプロセスを一覧表示するコマンドはどれか。
A) ps aux
B) pstree
C) ps fx
D) ps -l