プロセスを確認するpsコマンドの使い方をまとめました。
psコマンドの概要
psコマンドはLinuxで実行中のプロセス(Process)を確認できるコマンドです。
以下をRed Hat Enterprise Linux 9.5で実行するとpsコマンドのより詳しい説明を確認できます。
man ps
上記のコマンドの実行結果から確認できるpsコマンドのマニュアルを一部抜粋して日本語に翻訳したものが以下になります。
例
標準構文を使用してシステム上のすべてのプロセスを表示するには、次のようにします。
To see every process on the system using standard syntax:
ps -e
ps -ef
ps -eF
ps -ely
BSD 構文を使用してシステム上のすべてのプロセスを表示するには
To see every process on the system using BSD syntax:
ps ax
ps axu
プロセス ツリーを印刷するには
To print a process tree:
ps -ejH
ps axjf
スレッドに関する情報を取得するには
To get info about threads:
ps -eLf
ps axms
セキュリティ情報を取得するには
To get security info:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
ユーザーの root (実際の有効な ID) として実行されているすべてのプロセスを確認する
To see every process running as root (real & effective ID) in user
format:
ps -U root -u root u
ユーザー定義の形式ですべてのプロセスを表示するには
To see every process with a user-defined format:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -Ao pid,tt,user,fname,tmout,f,wchan
syslogd のプロセス ID のみを出力します。
Print only the process IDs of syslogd:
ps -C syslogd -o pid=
PID 42 の名前のみを出力します。
Print only the name of PID 42:
ps -q 42 -o comm=
動作しているプロセスをps コマンドとgrepコマンドで確認する
Linuxで動作しているプロセスを以下のコマンドで確認することができます。
ps aux | grep <実行中のコマンドを入力>
例えば、以下のコマンドを実行して、バックグラウンドで実行中のコマンドをpsコマンドで確認するには次のpsコマンドとgrepコマンドを実行する。
# sleep 600 &
&をつけることで、コマンドをバックグラウンドジョブとして実行できる。以下はRHEL9.6での実行例です。
[root@RHEL96 ~]# sleep 600 &
[1] 4500
今実行したsleepコマンドのプロセスをpsコマンドで確認します。
# ps aux | grep sleep
2行目のプロセスは、上記のgrep sleepに反応しています。1行目のsleep 600処理がプロセスとして表示されました。
[root@RHEL96 ~]# ps aux | grep sleep
root 4500 0.0 0.1 220952 1792 pts/0 S 01:34 0:00 sleep 600
root 4504 0.0 0.1 221676 2304 pts/0 S+ 01:35 0:00 grep --color=auto sleep
なお、本記事と別件ですが| grep をつけることで、|より前に実行したコマンドの実行結果に対して文字列で検索をかけることができます。
psコマンドに関連のあるコマンド
man psコマンドを実行した際に以下のコマンドについて以下のように記載されています。
SEE ALSO
pgrep(1), pstree(1), top(1), proc(5).
pgrep
pgrepは実行中のプロセスからプロセスIDを探せるコマンドです。
実行中のプロセスの中から、プロセス名やユーザー、グループ、端末名などを表すパターンを使ってプロセスIDを探すコマンドです。パターンには拡張正規表現(第10回)を使用できます。
コマンド名からプロセスIDを探す際には、pidofコマンドを使うこともできます。
参考:https://atmarkit.itmedia.co.jp/ait/articles/1707/28/news010.html
pstree
pstreeコマンドはプロセスの親子関係をツリー表示することができるコマンドです。
詳細:https://xtech.nikkei.com/it/article/COLUMN/20071204/288730/
top
topコマンドは、実行中のプロセスをCPU使用率が高い順に表示します。
「top」は現在実行中のプロセスをCPU利用率が高い順に表示します。表示はリアルタイムで更新されていき、「q」を入力すると終了します。

proc
procコマンドは現在のプロセスの状態を表示します。
man proc をRHEL9で実行して以下の説明が得られます。
DESCRIPTION
The proc filesystem is a pseudo-filesystem which provides an interface to kernel data structures. It is commonly mounted at /proc. Typi‐cally, it is mounted automatically by the system, but it can also be mounted manually using a command such as
proc ファイルシステムは、カーネル データ構造へのインターフェイスを提供する疑似ファイルシステムです。 通常、/proc にマウントされます。 通常、システムによって自動的にマウントされますが、次のようなコマンドを使用して手動でマウントすることもできます。:
mount -t proc proc /proc
Most of the files in the proc filesystem are read-only, but some files are writable, allowing kernel variables to be changed.
proc ファイルシステム内のファイルのほとんどは読み取り専用ですが、一部のファイルは書き込み可能であり、カーネル変数を変更できます。


