Linuxでプロセスの情報を確認・分析する上で必須なのがps
コマンドです。ここでは、よく使うオプションから詳細な使い方、組み合わせ例まで、網羅的にご紹介します。
ps [オプション]
項目名 | 説明 |
---|---|
PID | プロセスID |
TTY | 制御端末 |
TIME | 累計CPU使用時間 |
CMD | 実行コマンド |
USER | 実行ユーザー(-u等) |
%CPU | CPU使用率(-u等) |
%MEM | メモリ使用率(-u等) |
オプション | 機能・用途 | 使用例 |
---|---|---|
-e, -A | すべてのプロセスを表示 | ps -e |
-a | 端末に関連する全ユーザーのプロセス | ps -a |
-x | 制御端末の無いプロセスも表示(デーモン等) | ps -x |
-u | 詳細表示(ユーザー、CPU/メモリ使用率など) | ps -u |
-u [ユーザー] | 指定ユーザーのプロセスのみ表示 | ps -u root |
-f | フルフォーマット(親PID、起動時刻等も表示) | ps -ef |
aux | BSD風。全部+詳細でよく使う | ps aux |
-d | セッションリーダー以外すべて | ps -d |
-j | ジョブ形式で表示 | ps -j |
-l | ロングフォーマット | ps -l |
-p [PID] | 指定したPIDのプロセスのみ表示 | ps -p 1234 |
-C [コマンド名] | 指定コマンドを起動した全プロセスを抽出 | ps -C sshd |
-G / -g | 指定グループのプロセス | ps -G root, ps -g 1000 |
–sort=[+ | -]key | 表示を任意項目でソート |
-o [カラム名,…] | 映したい列・ラベル名をカスタム表示 | ps -eo pid,cmd,etime |
ww | コマンド列などの切れを防ぎ全行表示 | ps auxww |
–forest | 親子関係をツリー表示(階層構造化) | ps -ef –forest |
-r | 実行状態(RUN)のプロセスのみ表示 | ps -r |
–ppid [PID] | 親PIDから派生した全プロセス表示 | ps –ppid 1000 |
-L | 指定PIDの全スレッドも表示 | ps -p 1234 -L |
–help, man ps | オプションや各項目の詳細ヘルプを見る | ps –help, man ps |
・全プロセスを詳細表示(UNIX標準)
ps -ef
・BSDスタイルの詳細一覧(a/u/x組み合わせ)
ps aux
・特定ユーザーのプロセス
ps -u [ユーザー名]
・メモリ・CPU消費順にソート
ps aux --sort=-%mem
・特定のコマンド実行プロセスのみ
ps -C systemd
・出力内容をカスタマイズ
ps -eo pid,uname,pcpu,pmem,comm
カスタム列名で表示したい場合 :
ps -e -o pid=PID,uname=USER,pcpu=CPU,pmem=MEM,comm=CMD
・階層構造で親子関係を可視化
ps -ef --forest
・grepやawkとの連携
– プロセス名絞り込み検索
ps aux | grep nginx
– メモリ使用量合計
ps aux | awk '/[n]ginx/{sum+=$6}END{print sum}'
・wwオプションで長いコマンド行もフル表示
ps auxww
ps
は**「リアルタイム更新しない」静的一覧**です。top
、htop
等を利用してください。man ps
で確認を。ps
コマンドはプロセス情報の取得・表示方法を自在にカスタマイズできる、Linux運用には欠かせない万能ツールです。基本形から高度なオプションの組み合わせまで知っておけば、エンジニアの実力アップやトラブル対応力の向上につながります