はじめに
今回は、Linuxのpsコマンドについて使いながら理解していきます。
実践練習ではプロセスIDを確認して適切に終了させる手順を実施します!
psコマンド使うと、現在動作しているプロセスをを確認することができます。高負荷なプロセスがないか確認して制御する際にもよく利用するので、表示される情報の意味を理解して、便利なオプションも使ってみましょう。
基本の使い方
まずはオプションなどは特に指定せずシンプルに「ps」とだけ入力して実行してみます。
$ ps
実行結果↓
以下の情報が表示されます。
PID | プロセスID |
TTY | 端末デバイス名 |
TIME | CPUの使用時間 |
CMD | コマンド名 |
便利なオプション
psコマンドでよく使用するオプションをまとめました。実際に使用するときはオプションを指定することが多いです。自分が欲しい情報確認するにはどのオプションを使えばよいのか見ていきましょう。
$ ps [オプション]
e (A) | すべてのプロセスを表示 |
u | CPUやメモリ使用率などの情報も表示 |
x | 現在実行しているプロセスのみを表示 |
ps p PID | 特定のPIDの情報を表示 |
f | プロセスの親子関係をツリー形式で表示 |
aux | すべてのプロセスのCPUやメモリ使用率などの情報も表示 |
この中でも特によく使うのがauxオプションです。
実際に使ってみながらどのような情報が表示されるのか詳しく解説していきます。
USER | 実行ユーザ名 |
PID | プロセスID |
%CPU | プロセスのCPU使用率 |
%MEM | 物理メモリ使用率 |
VSZ | 仮想メモリのサイズ(KB) |
RSS | 物理メモリの使用サイズ(KB)。 |
TTY | 端末デバイス名 |
STAT | プロセスのステータス |
START | プロセスの開始時刻(開始日時) |
TIME | CPUの使用時間 |
COMMAND | コマンド |
【実践】特定のプロセスを終了させる
実践練習として不要なプロセスを特定して終了させてみましょう。
まず、10秒ごとにhello!と無限に出力するpythonプログラムを用意し、USERはhoyakoでバックグラウンド実行させます。
import time while True: print ("hello!") time.sleep(10)
バックグラウンドで実行↓
$ nohup python3 sample01.py -u &
※上記のコマンドを実行したときには表示されるのが[ジョブID]PIDですが。今回はPIDが分からなくなったという設定で進めます。
PIDが何番か確認します。今回の場合、pythonだということはわかっているのでpythonを検索単語としてgrepで絞り込んでみます。
$ ps aux | grep python
実行USERがhoyakoでPID886で実行中ということが分かりました!
このままだと永遠にhello!と言い続けるのでこのプロセスをkillコマンドで終了させます。
$ kill 886
ここでもう一度 ps aux | grep python を実行するとPID886が消えていることが確認できました。お疲れさまでした!
まとめ
今回は、psコマンドを使ったプロセスの確認と便利なオプションと組み合わせての活用方法について解説しました。
実践練習では実際にプロセスの起動~終了までの流れの中で、psコマンドを使って自分の知りたい情報を確認しました~
不要なプロセスや、異常なプロセスを調べて適切に終了させていくという運用にも役立つので、有効活用していきましょう!!