処理タイプ別ターミナルコマンドまとめ、AIエージェントが実行するコマンドなどを紹介しています

ps aux コマンド情報まとめ

LinuxやmacOSのコマンド、 ps aux についてオプションの意味、ps -ef との違い、AIエージェントが実行しようとした場合の危険性について紹介しています。

ps auxとは

ps(Process Status)は、現在実行中のプロセスの情報を表示するコマンドです。そこに aux というオプションを組み合わせることで、システム上のすべてのプロセスを詳細に一覧表示できます。

オプション「aux」の意味

オプション意味
a端末(TTY)に紐づくすべてのユーザーのプロセスを表示
uユーザー名やCPU・メモリ使用率などの詳細情報を表示
x端末に紐づかないプロセス(デーモンなど)も表示
オプション「aux」の意味

「a」「u」「x」の3つのオプションを組み合わせることで、すべてのプロセスを確認できます。

aux はBSD形式のオプションで、ハイフンなしで使います。
POSIX形式の ps -ef もほぼ同じ情報を表示しますが、出力カラムが異なります。

ps auxにて出力されるカラム

実際に ps aux を実行すると、次のような出力が得られます。

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 16952 1120 ? Ss Jun01 0:01 /sbin/init
www-data 872 0.3 1.2 256812 12340 ? S 10:21 0:15 nginx: worker
alice 1234 2.1 3.5 512000 35600 pts/0 Sl 11:05 1:20 python app.py

各カラムの意味は以下の通りです。

カラム意味
USERプロセスを起動したユーザー名
PIDプロセスID(一意の識別番号)
%CPUCPU使用率(%)
%MEM物理メモリ使用率(%)
VSZ仮想メモリの使用量(KB)
RSS実際に使用している物理メモリ量(KB)
TTY紐づいている端末(? はデーモンなど端末なし)
STATプロセスの状態(後述)
STARTプロセスの起動時刻または日付
TIME累積CPU使用時間
COMMAND実行されているコマンドとその引数
ps auxにて出力されるカラム

STAT(プロセス状態)詳細

STAT カラムはプロセスの現在の状態を示します。

記号意味
RRunning(実行中または実行待ち)
SSleeping(割り込み可能なスリープ)
DUninterruptible sleep(I/O待ちなど、割り込み不可)
ZZombie(終了済みだが親プロセスが回収していない)
TStopped(シグナルで停止中)
sセッションリーダー
lマルチスレッドプロセス
+フォアグラウンドプロセス
<高優先度プロセス
N低優先度プロセス
STAT(プロセス状態)詳細

例えば Ss はスリープ中のセッションリーダー、Sl はマルチスレッドのスリープ中プロセスを意味します。

よく使う組み合わせ

特定のプロセスを絞り込む(grep と組み合わせ)

ps aux | grep nginx

nginx に関連するプロセスだけを表示します。

CPU使用率でソートする

ps aux --sort=-%cpu | head -10

CPU消費が多い上位10プロセスを表示します( --sort オプションはLinux限定)。

メモリ使用率でソートする

ps aux --sort=-%mem | head -10

メモリを多く使っているプロセスを探すときに便利です。

特定ユーザーのプロセスだけ表示

ps aux | grep '^user_name'

指定したユーザーが起動したプロセスのみ表示します。

ps aux と ps -ef の違い

どちらもすべてのプロセスを表示しますが、以下の違いがあります。

項目ps auxps -ef
形式BSD形式POSIX/System V形式
CPU・メモリ表示あり(%CPU, %MEMなし
PPID(親PID)表示なしあり
互換性Linux・macOSLinux・macOS・多くのUnix
ps aux vs ps -ef の違い

リソース使用率を確認したいなら ps aux、プロセスの親子関係を追いたいなら ps -ef が向いています。

ユースケース

サービスが起動しているか確認する

ps aux | grep ‘[m]ysqld’

[m]ysqld のように書くと、grep 自身がヒットしなくなるテクニックです。

ゾンビプロセスを探す

ps aux | grep 'Z'

ゾンビプロセスが多い場合、親プロセスのバグや設計上の問題が疑われます。

AIエージェントが実行しようとした場合

ps aux コマンドは、現在実行中のプロセスの情報を確認するためのものであり、AIエージェントが実行する場合でも危険性はありません。