ps(プロセスの状態)は、システム上の実行中のプロセスの情報を表示するためのネイティブUnix/Linuxユーティリティです:この情報は/procファイルシステム内の仮想ファイルから読み取ります。これは、Linuxシステムでのプロセス監視におけるシステム管理の重要なユーティリティの1つであり、Linuxシステムで何が起こっているかを理解するのに役立ちます。
出力を操作するための多くのオプションがありますが、実際には日常的に使用するのに実用的なものはごく少数です。
関連記事: Linuxにおけるプロセスについて知っておくべきすべて[包括的なガイド]
この記事では、Linuxシステム上でアクティブな実行中のプロセスを監視するための
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
rootとして実行中のすべてのプロセスを印刷(実ユーザーIDと有効ユーザーID)
8.以下のコマンドを使用すると、ユーザーフォーマットでrootユーザー権限で実行されているすべてのプロセスを表示できます。
$ 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オプションを使用すると、以下に示すようにユーザー定義の出力形式を構築できます。
18. すべてのフォーマット指定子をリストアップするには、L
フラグを含めます。
$ ps L
19. 以下のコマンドは、プロセスのPID、PPID、ユーザー名、およびコマンドを表示します。
$ ps -eo pid,ppid,user,cmd

20. プロセスのファイルシステムグループ、優先度、開始時間、および経過時間を表示するカスタム出力形式の別の例を以下に示します。
$ 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.高CPU時間を消費しているLinuxプロセス/応答なしのアプリケーションまたはその他のプロセスを終了します。
まず、応答のないプロセスやアプリケーションの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

ウォッチユーティリティを使用してリアルタイムプロセス監視を実行する
30.最後に、psは静的な情報を表示するため、以下のコマンドのように(目的を達成するためにカスタムpsコマンドを指定して)繰り返し出力されるリアルタイムプロセス監視を実行するためにwatchユーティリティを使用できます。
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

重要: psは静的な情報のみを表示します。頻繁に更新される出力を表示するには、htop、top、およびglancesなどのツールを使用できます。最後の2つは実際にはLinuxシステムのパフォーマンス監視ツールです。
次の関連記事もお読みいただけるかもしれません。
- LinuxでPID番号を使用してプロセス名を見つける方法
- Linux で最もメモリと CPU 使用率が高いトップ実行プロセスを見つける方法
- A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
- Linux で実行中のプロセスを見つけて終了させる方法
- Linux コマンドをバックグラウンドで開始し、ターミナルでプロセスをデタッチする方法
今は以上です。有用なps コマンドの例(何をするかを説明するのを忘れずに)があれば、以下のコメントフォームを使用して共有してください。
Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/