0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Linux】psコマンドについて

Posted at

どんな時に使う?

ざっくりと、、プロセスとはメモリ上で動作しているプログラムの事を指します。
lsコマンド等を実行した際などに余り意識する事はないのですが、プロセスが生成されています。lsコマンド実行後には、プロセスが解放されます。

現在動作しているプロセスを確認したい時に、psコマンドを利用します。

psコマンドについて

現在のターミナルで動作しているプロセスを確認する際には、psと打つだけで確認する事が出来ます。
オプションを指定せずにpsコマンドを実施した場合は、現在使用しているターミナル上で実行されているプロセスのみが表示されます。

psコマンド実施
[test_01@localhost /]$ ps
  PID TTY          TIME CMD
 1434 pts/0    00:00:00 bash
 3890 pts/0    00:00:00 ps

出力された結果を確認したところ、bashとpsプロセスが動作している事が確認出来ました。
右からPID、TTY、TIME、CMDカラムが出力されています。
PIDは、プロセス毎に割り振られるプロセスID。TTYは、ターミナル名が出力されています。今はsshで繋いでいるので、「pts/0」と表記されています。実行結果は載せないですが、直接接続した場合は「tty1」と表記されました。作業では、気にした事がない項目です。TIMEは、CPUの使用時間です。CMDは実行されているプログラムとなります。

TTYTIMEに関しては、私は業務であまり気にしていなかった項目です。TIMEはプロセスの起動時間かなと勘違いしていました。
mas psで調べました。

項目 内容
PID プロセスID
TTY ターミナル名
TIME CPUの使用時間
CMD 実行しているプログラム

  

試しに他のプロセスを生成して、psコマンドを叩くとどうなるのか?を確認してみたいと思います。
sleepコマンドを実行して、その後にpsコマンドを叩いてみます。

プロセス生成後にpsコマンド実施
[test_01@localhost /]$ sleep 3 &
[1] 4600
[test_01@localhost /]$ ps
  PID TTY          TIME CMD
 1434 pts/0    00:00:00 bash
 4600 pts/0    00:00:00 sleep
 4601 pts/0    00:00:00 ps

実行したsleepコマンドが表示された事を確認出来ました。3秒後に処理が終了するようにしたので、再度psコマンドを実行します。

sleepコマンドの処理終了後
[test_01@localhost /]$ ps
  PID TTY          TIME CMD
 1434 pts/0    00:00:00 bash
 4602 pts/0    00:00:00 ps
[1]+  終了                    sleep 3
[test_01@localhost /]$ ps
  PID TTY          TIME CMD
 1434 pts/0    00:00:00 bash
 4603 pts/0    00:00:00 ps

表示されないことを確認しました。

よく使うオプション

私がよく使用するオプションを下記表にまとめました。
UNIXオプション(-付き)とBSDオプション(-無し)で、効果が違います。
現場によると思いますが、ps -efps auxのどちらかは使う場面が多いかと思います。
どちらも全てのプロセスが出力されますが、フォーマットが違うので見やすい方を使えばよいと思います。
私は特に指定がなければ、ps auxを使う機会が多かったので、こちらを好んで使用しています。

オプション 内容
a 端末操作のプロセスを表示 
x 端末操作以外のプロセスを表示
u CPUやメモリ使用率などの詳細情報を表示
f 階層表示
-e 全てのプロセスを表示
-f より詳細なフォーマットで表示 (full-format listing)

試しに、ps auxコマンド実行時には下記のような結果を得られました
※動作しているプロセスが多かったので、省略。

%CPU%MEMのCPU/メモリ使用率あたりは、よく確認してます。
grepコマンドを使用して、結果を見やすくする事もよくあります。

ps aux
[test_01@localhost ~]$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 128024  6656 ?        Ss   10月30   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    10月30   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   10月30   0:00 [kworker/0:0H]

..etc

[test_01@localhost ~]$ ps aux | grep sleep
test_01   5799  0.0  0.0 108052   356 pts/0    S    16:00   0:00 sleep 5
test_01   5801  0.0  0.0 112824   968 pts/0    R+   16:00   0:00 grep --color=auto sleep

終わり

マニュアルを確認すると、思った以上にオプションが多くて驚きました。
私は業務上ではプロセス殺すときにPID調べたり、プロセス存在するかの確認で使用する事が殆どでございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?