Linux プロセス監視に役立つ 30 の「ps コマンド」例
ps (プロセス ステータス) は、システム上で実行中のプロセスの選択に関する情報を表示するためのネイティブ Unix/Linux ユーティリティです。この情報は/内の仮想ファイルから読み取ります。 proc ファイルシステム。これは、システム管理、特にプロセス監視において、Linux システムで何が起こっているかを理解するのに役立つ重要なユーティリティの 1 つです。
出力を操作するためのオプションが多数ありますが、日常使用に実際に役立つものは少数です。
こちらもお読みください: Linux のプロセスについて知っておくべきことすべて [総合ガイド]
この記事では、Linux システム上でアクティブな実行プロセスを監視するための ps コマンドの便利な例を 30 個紹介します。
ps は、情報の各列の意味を表す見出し行を含む出力を生成することに注意してください。ps のマニュアル ページ ですべてのラベルの意味を確認できます。
現在のシェル内のすべてのプロセスをリストする
1. 引数を指定せずに ps コマンドを実行すると、現在のシェルのプロセスが表示されます。
ps
すべてのプロセスを異なる形式で印刷
2. Linux システム上のすべてのアクティブなプロセスを汎用 (Unix/Linux) 形式で表示します。
ps -A
OR
ps -e
3. すべてのプロセスをBSD 形式で表示します。
ps au
OR
ps axu
4. 完全な形式のリストを実行するには、-f
または -F
フラグを追加します。
ps -ef
OR
ps -eF
ユーザーが実行中のプロセスを表示する
5. 自分が所有するすべてのプロセス (ps コマンド の実行者、この場合は root) を選択し、次のように入力します。
ps -x
6. ユーザーのプロセスを実際のユーザー ID (RUID) または名前で表示するには、-U
フラグを使用します。
ps -fU tecmint
OR
ps -fu 1000
7. 実効ユーザーのID (EUID) または名前でユーザーのプロセスを選択するには、-u
オプションを使用します。 。
ps -fu tecmint
OR
ps -fu 1000
ルート (実際の有効な ID) として実行されているすべてのプロセスを出力します。
8. 以下のコマンドを使用すると、root ユーザー権限 (実際の ID および実効 ID) で実行されているすべてのプロセスをユーザー形式で表示できます。
ps -U root -u root
グループプロセスの表示
9. 特定のグループ (実際のグループ ID (RGID) または名前) が所有するすべてのプロセスを一覧表示する場合は、次のように入力します。
ps -fG apache
OR
ps -fG 48
10. 実効グループ名 (またはセッション) が所有するすべてのプロセスを一覧表示するには、次のように入力します。
ps -fg apache
PID および PPID によるプロセスの表示
11. 次のように、PID 別にプロセスを一覧表示できます。
ps -fp 1178
12. PPID でプロセスを選択するには、次のように入力します。
ps -f --ppid 1154
13. PID リストを使用して選択を行います。
ps -fp 2226,1154,1146
TTYによるプロセスの表示
14. tty でプロセスを選択するには、次のように -t フラグを使用します。
ps -t pts/0
ps -t pts/1
ps -ft tty1
印刷プロセスツリー
15. プロセス ツリーは、システム上のプロセスがどのように相互にリンクされているかを示します。親が強制終了されたプロセスは、init (または systemd) によって採用されます。
ps -e --forest
16. このように、特定のプロセスのプロセス ツリーを印刷することもできます。
ps -f --forest -C sshd
OR
ps -ef --forest | grep -v grep | grep sshd
印刷プロセスのスレッド
17. プロセスのすべてのスレッドを出力するには、-L
フラグを使用します。これにより、LWP (軽量プロセス ) が表示されます。 ) 列とNLWP (軽量プロセスの数) 列。
ps -fL -C httpd
カスタム出力形式の指定
-o または –format オプションを使用すると、ps では以下に示すようにユーザー定義の出力形式を構築できます。
18. すべての形式指定子をリストするには、L
フラグを含めます。
ps L
19. 以下のコマンドを使用すると、プロセスのPID、PPID、ユーザー名、およびコマンドを表示できます。
ps -eo pid,ppid,user,cmd
20. 以下は、ファイル システム グループ、nice 値、開始時刻、プロセスの経過時間を示すカスタム出力形式の別の例です。
ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. PID を使用してプロセス名を検索します。
ps -p 1154 -o comm=
親プロセスと子プロセスを表示する
22. 名前で特定のプロセスを選択するには、-C フラグを使用します。これにより、そのすべての子プロセスも表示されます。
ps -C sshd
23. プロセスのすべてのインスタンスのすべてのPIDを検索します。標準出力またはファイルからPIDを読み取る必要があるスクリプトを作成するときに役立ちます。
ps -C httpd -o pid=
24. プロセスの実行時間を確認します。
ps -eo comm,etime,user | grep httpd
以下の出力は、HTTPD サービスが 1 時間 48 分 17 秒間実行されていることを示しています。
Linux システムパフォーマンスのトラブルシューティング
システムが正常に動作していない場合、たとえば異常に遅い場合は、次のようにシステムのトラブルシューティングを実行できます。
26. Linux で最も高いメモリと CPU 使用率に基づいて、最も実行されているプロセスを見つけます。
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Linux プロセス/応答しないアプリケーション、または CPU 時間を多く消費しているプロセスを強制終了する。
まず、応答しないプロセスまたはアプリケーションのPIDを見つけます。
ps -A | grep -i stress
次に、kill コマンドを使用してすぐに終了します。
kill -9 2583 2584
セキュリティ情報を印刷する
28. 次のようにセキュリティ コンテキスト (特に SELinux の場合) を表示します。
ps -eM
OR
ps --context
29. このコマンドを使用して、ユーザー定義形式でセキュリティ情報を表示することもできます。
ps -eo euser,ruser,suser,fuser,f,comm,label
Watch Utilityを使用したリアルタイムプロセス監視の実行
30. 最後に、ps は静的な情報を表示するため、watch ユーティリティを使用して、以下のコマンドのように 1 秒ごとに表示される繰り返し出力によるリアルタイム プロセス監視を実行できます。 (目的を達成するためにカスタムのps コマンドを指定します)。
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
重要: ps は静的な情報のみを表示します。頻繁に更新される出力を表示するには、htop などのツールを使用します。トップとチラ見: 最後の 2 つは、実際には Linux システム パフォーマンス監視ツールです。
以下の関連記事もお読みください。
- Linux で PID 番号を使用してプロセス名を検索する方法
- Linux での最高のメモリと CPU 使用率による上位実行プロセスの検索
- Linux でプロセスを終了する Kill、Pkill、および Killall コマンドのガイド
- Linux で実行中のプロセスを見つけて強制終了する方法
- Linux コマンドをバックグラウンドで起動し、ターミナルでプロセスを切断する方法
それは今のところすべてです。共有できる便利なps コマンド の例がある場合は (機能の説明も忘れずに)、以下のコメント フォームを使用してください。