Linuxプロセス監視のための30の有用な「psコマンド」の例

psプロセスの状態)は、システム上の実行中のプロセスの情報を表示するためのネイティブUnix/Linuxユーティリティです:この情報は/procファイルシステム内の仮想ファイルから読み取ります。これは、Linuxシステムでのプロセス監視におけるシステム管理の重要なユーティリティの1つであり、Linuxシステムで何が起こっているかを理解するのに役立ちます。

出力を操作するための多くのオプションがありますが、実際には日常的に使用するのに実用的なものはごく少数です。

関連記事: Linuxにおけるプロセスについて知っておくべきすべて[包括的なガイド]

この記事では、Linuxシステム上でアクティブな実行中のプロセスを監視するためのpsコマンドの便利な例を30個紹介します。

psは見出し行を含む出力を生成します。この見出し行には各列の情報の意味が表示されます。すべてのラベルの意味については、psのマニュアルページで見つけることができます。

現在のシェルで全てのプロセスをリストする

1.引数なしでpsコマンドを実行すると、現在のシェルのプロセスが表示されます。

$ ps 
List Current Running Processes

異なる形式で全てのプロセスを表示する

2.Linuxシステム上のすべてのアクティブなプロセスを一般的な(Unix/Linux)形式で表示します。

$ ps -A
OR
$ ps -e
List Processes in Standard Format

3.すべてのプロセスをBSD形式で表示します。

$ ps au
OR
$ ps axu
List Processes in BSD Format

4.フルフォーマットリストを実行するには、-fまたは-Fフラグを追加します。

$ ps -ef
OR
$ ps -eF
List Processes in Long List Format

ユーザー実行プロセスを表示

5.あなたが所有するすべてのプロセスを選択するには(この場合、psコマンドの実行者であるroot)、次を入力します:

$ ps -x 

6.実ユーザーID(RUID)または名前でユーザーのプロセスを表示するには、-Uフラグを使用します。

$ ps -fU tecmint
OR
$ ps -fu 1000
List User Processes by ID

7.有効なユーザーID(EUID)または名前でユーザーのプロセスを選択するには、-uオプションを使用します。

$ ps -fu tecmint
OR
$ ps -fu 1000

rootとして実行中のすべてのプロセスを印刷(実ユーザーIDと有効ユーザーID)

8.以下のコマンドを使用すると、ユーザーフォーマットでrootユーザー権限で実行されているすべてのプロセスを表示できます。

$ ps -U root -u root 
Display Root User Running Processes

グループプロセスを表示

9.特定のグループ(実際のグループID(RGID)または名前)が所有するすべてのプロセスをリストしたい場合は、次を入力してください。

$ ps -fG apache
OR
$ ps -fG 48
Display Group Processes

10.有効なグループ名(またはセッション)が所有するすべてのプロセスをリストするには、次を入力してください。

$ ps -fg apache

プロセスをPIDとPPIDで表示

11.PIDでプロセスをリストすることができます。

$ ps -fp 1178
List Processes by PID

12.PPIDでプロセスを選択するには、次を入力してください。

$ ps -f --ppid 1154
List Process by PPID

13.PIDリストを使用して選択します。

$ ps -fp 2226,1154,1146
List Processes by PIDs

TTYでプロセスを表示

14.ttyによってプロセスを選択するには、次のように-tフラグを使用します。

$ ps -t pts/0
$ ps -t pts/1
$ ps -ft tty1
List Processes by TTY

プリントプロセスツリー

15. プロセスツリーは、システム上のプロセスがどのように相互にリンクされているかを示します。親が終了したプロセスはinit(またはsystemd)によって採用されます。

$ ps -e --forest 
List Process Tree

16. 次のように、指定されたプロセスのプロセスツリーを表示することもできます。

$ ps -f --forest -C sshd
OR
$ ps -ef --forest | grep -v grep | grep sshd 
List Tree View of Process

プリントプロセススレッド

17. プロセスのすべてのスレッドを印刷するには、-Lフラグを使用します。これにより、LWP軽量プロセス)およびNLWP軽量プロセスの数)列が表示されます。

$ ps -fL -C httpd
List Process Threads

カスタム出力形式を指定する

-oまたは–formatオプションを使用すると、以下に示すようにユーザー定義の出力形式を構築できます。

18. すべてのフォーマット指定子をリストアップするには、Lフラグを含めます。

$ ps L

19. 以下のコマンドは、プロセスのPIDPPID、ユーザー名、およびコマンドを表示します。

$ ps -eo pid,ppid,user,cmd
List Processes with Names

20. プロセスのファイルシステムグループ、優先度、開始時間、および経過時間を表示するカスタム出力形式の別の例を以下に示します。

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
List Process ID Information

21. PIDを使用してプロセス名を見つけるには。

$ ps -p 1154 -o comm=
Find Process using PID

親と子プロセスを表示する

22. 名前で特定のプロセスを選択するには、-Cフラグを使用します。これにより、その子プロセスもすべて表示されます。

$ ps -C sshd
Find Parent-Child Process

23.プロセスのすべてのインスタンスのPIDを見つけます。スクリプトを書く際に、標準出力やファイルからPIDを読み取る必要がある場合に便利です。

$ ps -C httpd -o pid=
Find All Process PIDs

24.プロセスの実行時間を確認します。

$ ps -eo comm,etime,user | grep httpd

以下の出力は、HTTPDサービスが1時間48分17秒間実行されていることを示しています。

Find Process Uptime

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
Find Top Running Processes

27.高CPU時間を消費しているLinuxプロセス/応答なしのアプリケーションまたはその他のプロセスを終了します。

まず、応答のないプロセスやアプリケーションのPIDを見つけます。

$ ps -A | grep -i stress

その後、即座に終了させるためにkillコマンドを使用します。

$ kill -9 2583 2584
Find and Kill a Process

セキュリティ情報を表示

28.このようにセキュリティコンテキスト(特にSELinux)を表示します。

$ ps -eM
OR
$ ps --context
Find SELinux Context

29.このコマンドを使用して、ユーザー定義の形式でセキュリティ情報を表示することもできます。

$ ps -eo  euser,ruser,suser,fuser,f,comm,label
List SELinux Context by Users

ウォッチユーティリティを使用してリアルタイムプロセス監視を実行する

30.最後に、psは静的な情報を表示するため、以下のコマンドのように(目的を達成するためにカスタムpsコマンドを指定して)繰り返し出力されるリアルタイムプロセス監視を実行するためにwatchユーティリティを使用できます。

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Real-Time Process Monitoring

重要: psは静的な情報のみを表示します。頻繁に更新される出力を表示するには、htoptop、およびglancesなどのツールを使用できます。最後の2つは実際にはLinuxシステムのパフォーマンス監視ツールです。

次の関連記事もお読みいただけるかもしれません。

  1. LinuxでPID番号を使用してプロセス名を見つける方法
  2. Linux で最もメモリと CPU 使用率が高いトップ実行プロセスを見つける方法
  3. A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
  4. Linux で実行中のプロセスを見つけて終了させる方法
  5. Linux コマンドをバックグラウンドで開始し、ターミナルでプロセスをデタッチする方法

今は以上です。有用なps コマンドの例(何をするかを説明するのを忘れずに)があれば、以下のコメントフォームを使用して共有してください。

Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/