【Linuxコマンド】psコマンドを理解する -特定のプロセスを確認してから終了させる手順-

Linux

はじめに

今回は、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が消えていることが確認できました。お疲れさまでした!

ちなみに、killしたPIDに対してもう一度killコマンドを実行すると「No such process (そのプロセスIDは存在しません)」と出力されます。

まとめ

今回は、psコマンドを使ったプロセスの確認と便利なオプションと組み合わせての活用方法について解説しました。

実践練習では実際にプロセスの起動~終了までの流れの中で、psコマンドを使って自分の知りたい情報を確認しました~

不要なプロセスや、異常なプロセスを調べて適切に終了させていくという運用にも役立つので、有効活用していきましょう!!

タイトルとURLをコピーしました