概要
ps
コマンドは、現在実行中のプロセスの情報を表示するために使用されます。本記事では、その基本的な使い方から、よく使われるオプションについて詳しく解説します。
ps コマンド
ps
コマンドは、Unix 系オペレーティングシステムで動作しているプロセスを表示するためのコマンドです。
$ ps
PID TTY TIME CMD
106992 pts/6 00:00:00 bash
108558 pts/6 00:00:00 ps
オプション
オプションの指定方法
オプションの指定方法は UNIX オプション、BSD オプション、GNU ロングオプションの 3 通りがあります。
BSD スタイルオプション
BSD スタイルのオプションは、ハイフンなしでアルファベット 1 文字で指定します。 複数のオプションは結合して指定できます。
ps aux
POSIX スタイルオプション
POSIX スタイルのオプションは、
-
のあとにアルファベット 1 文字で指定します。 複数のオプションは-
のあとに結合して指定できます。ps -ef
GNU スタイルロングオプション
GNU スタイルのオプションは、
--option
という形で指定します。ps --forest
プロセスの表示対象を指定する
プロセスの表示対象は、表示範囲と必要に応じてフィルタリングを行うことで指定できます。
プロセスの表示対象を指定するオプションを記載します:
コマンド | スタイル | 内容 |
---|---|---|
-A , -e |
POSIX | 全てのプロセスを表示 |
-d |
POSIX | 全てのプロセスを表示 (セッションリーダーは除く) |
a |
BSD | 端末に関連付けられている全てのプロセスを表示 (他のユーザーも含む) |
-a |
POSIX | 端末に関連付けられている全てのプロセスを表示 (セッションリーダーは除く) |
x |
BSD | 端末に関連付けられていないプロセスも表示 |
T |
BSD | この端末に関連付けられている全てのプロセスを表示 |
r |
BSD | 実行中のプロセスのみを表示 |
- セッション:
- セッションとは、ユーザーがシェルを通じて Linux システムと対話するための一連の操作を指します。
- セッション ID:
- セッション ID (Session ID) は、特定のセッションを一意に識別するための識別子です。
- セッションリーダー:
- セッションリーダーとは、セッションを開始したプロセスのことです。通常、これはシェルです。
- セッションリーダーは、セッション内で生成されたすべてのプロセスの親プロセスであり、そのセッションの制御を担当します。
- 端末に関連付けられるプロセス
- ターミナルから直接起動されたプロセスのことです。これらのプロセスは、端末の子プロセスとして機能し、親プロセスであるシェルによって管理されます。
表示結果をフィルタリングする
プロセスの表示対象を指定するオプションを記載します:
オプション | スタイル | 意味 |
---|---|---|
-p, p, --pid <PID> |
POSIX, BSD, GNU long | プロセス ID |
-q, q, --quick-pid <PID> |
BSD, GNU long | プロセス ID (高速モード) |
--ppid <PID> |
GNU long | 親プロセス ID |
-s, --sid <session> |
POSIX, GNU long | セッション ID |
-U, --User <UID> |
BSD, GNU long | 実ユーザーの ID または名前 |
-u, U, --user <UID> |
BSD, GNU long | 実効ユーザーの ID または名前 |
-G, --Group <GID> |
BSD, GNU long | 実グループの ID または名前 |
-g, --group <group> |
BSD, GNU long | 実効グループの ID または名前 |
-t, t, --tty <tty> |
BSD, GNU long | ターミナル |
-C <command> |
POSIX | コマンド名 |
S, --cumulative |
BSD, GNU long | 終了した子プロセスを含む |
-N , --deselect |
POSIX | 選択したプロセス以外を表示 (上記と併用) |
UID や名前を複数指定する場合、カンマ区切りか (例:
-u root,nobody
) または空白区切り (例:-u root nobody
) で指定できます。実ユーザー (Real User):
プロセスを開始した元のユーザーです。- 実グループ (Real Group):
プロセスを開始した元のグループです。通常、ユーザーが所属している 1 次なグループがこれにあたります。 - 実効ユーザー (Effective User):
プロセスが実行時に用いるユーザーです。setuid ビットなどが設定されている場合、この値は実ユーザーとは異なるユーザーでプロセスが動作する場合に使われます。 - 実効グループ (Effective Group):
プロセスが実行時に用いるグループです。setgid ビットが設定された場合に、実グループとは異なるグループでプロセスが動作する場合に使われます。
特定のユーザーのプロセスを表示
このコマンドは、指定したユーザーのプロセスのみを表示します。
ps -u <username>
特定のプロセスに関する情報を表示
このコマンドは、指定したプロセス ID の情報を表示します。
ps -p <PID>
スレッドを表示する
オプション | 説明 |
---|---|
H |
プロセスのようにに表示 |
-m, m |
プロセスの後に表示 |
-L |
LWP 、NLWP 列を追加 (-T と併用不可) |
-T |
SPID 列が追加 (-L と併用不可) |
- LWP (Light Weight Process): LWP は、スレッドを識別するための識別子です。プロセス内の各スレッドが個別の LWP ID を持ちます。
- NLWP (Number of Light Weight Processes): NLWP は、そのプロセスが持つスレッド (LWP) の総数を示します。
- SPID: SPID は、スレッドを識別するための識別子です。
表示形式を指定する
オプション
表示するカラムを指定するオプションを記載します:
オプション | カラムの種類 ・説明 |
---|---|
-F |
UID PID PPID C STIME TTY TIME CMD |
-f |
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD |
l |
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND |
-l |
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD |
-j |
PID PGID SID TTY TIME CMD |
j |
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND |
s |
UID PID PENDING BLOCKED IGNORED CAUGHT STAT TTY TIME COMMAND |
u |
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND |
v |
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND |
X |
PID STACKP ESP EIP TMOUT ALARM STAT TTY TIME COMMAND |
-O <format> |
PID <format> S TTY TIME COMMAND |
O <format> |
PID <format> S TTY TIME COMMAND |
-o, o, --format <format> |
<format> |
f, --forest |
プロセス階層を表示 |
-H |
プロセス階層を表示 |
--headers |
ヘッダー行を 1 ページに 1 行表示する |
h, --no-headers |
ヘッダーを表示しない |
-y |
フラグを表示せず、rss を表示 (-l と併用) |
-c |
スケジューリングクラスを表示 (-l と併用) |
n |
UID、GID を数値で表示 |
c |
実際のコマンド名を表示 |
e |
コマンドの後に環境変数を表示 |
表示する幅、高さを指定するオプションを記載します:
オプション | 説明 |
---|---|
--cols, --columns, --width <num> |
画面の幅を設定 |
--rows, --lines <num> |
画面の高さを設定 |
-w, w |
出力幅を無制限にする |
プロセスツリーを表示
このコマンドは、プロセスの親子関係をツリー形式で表示します。
$ ps f
PID TTY TIME CMD
235882 pts/0 00:00:00 bash
238951 pts/0 00:00:00 \_ ps
1443 pts/0 00:00:00 sh
1981 pts/0 00:15:27 \_ jupyter-lab
その他
オプション | 説明 |
---|---|
k, --sort <column> |
ソート順を指定 |
L |
フォーマット指定子を表示 |
コメント