ps 概要
`ps` コマンドは、特定の時点のプロセス情報を表示する「スナップショット」ツールです。`top` や `htop` のようにリアルタイムで更新されるのではなく、コマンドが実行された時点の情報を一度だけ出力します。これはシステムで現在どの作業が進行中かを把握するのに便利です。
ps の主要な役割
`ps` コマンドは主に次の目的で使用されます:
主要な活用分野
- 実行中のプロセスの確認: 現在のシステムでどのプログラムやサービスが動作しているのかを把握します。
- プロセス ID (PID) の取得: 特定のプロセスを終了または制御するためにそのプロセスの PID を取得します。
- プロセス状態の確認: プロセスが実行中か、待機中か、ゾンビ状態かなどを確認します。
- CPU およびメモリ使用量の確認: 各プロセスが使用しているリソース情報を簡潔に確認します。
- スクリプトのデバッグ: バックグラウンドで実行されているスクリプトやプログラムの状態を確認します。
ps 出力カラムの理解
`ps` コマンド実行時に一般的に次の情報が表示されます:
主要な出力カラム
- **PID**: プロセス ID。各プロセスのユニークな識別子です。
- **TTY**: プロセスが実行されている端末 (tty)。 `?` は端末に接続されていないプロセス (デーモン) を意味します。
- **TIME**: プロセスが使用した総 CPU 時間です。
- **CMD**: プロセスを開始するために使用されたコマンドです。
- **STAT**: プロセスの現在の状態コード (例: `R` - 実行中, `S` - 睡眠中, `Z` - ゾンビ, `D` - 割り込み不可の睡眠, `T` - 停止中, `<` - 高優先度, `N` - 低優先度, `s` - セッションリーダー, `l` - マルチスレッド, `+` - フォアグラウンドプロセスグループに属する)。
- **USER**: プロセスを実行したユーザー名です。
- **%CPU**: プロセスが使用している CPU 使用率です。
- **%MEM**: プロセスが使用している物理メモリ (RAM) 使用率です。
- **VSZ (Virtual Memory Size)**: プロセスが使用している仮想メモリの総量です。
- **RSS (Resident Set Size)**: プロセスが物理メモリ (RAM) に実際に常駐している量です。
主要な ps コマンドオプション
`ps` コマンドは非常に多様なオプションを提供し、主に UNIX スタイル、BSD スタイル、GNU スタイルの三つのスタイルに分類されます。ここでは最も一般的に使用されるオプションについて説明します。
1. プロセス選択オプション (BSD/Unix スタイル)
2. 出力形式オプション
3. プロセスツリーおよびスレッド
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`ps` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`ps` コマンドのさまざまな活用例を通じて、システムのプロセス状態を効果的に確認し、分析する方法を学んでください。
現在のターミナルのすべてのプロセスを照会
ps
現在ログインしているターミナル (シェル) で実行中のプロセスリストを簡単に表示します。
すべてのユーザープロセスの詳細情報を照会
ps aux
すべてのユーザー (a) のプロセスの中で、ターミナルに接続されていないもの (x) まで含めて、ユーザー (u) を中心に詳細情報を出力します。最も一般的に使用される組み合わせです。
プロセスツリー形式でのすべてのプロセスの照会
ps -ef
すべてのプロセスを親子関係のツリー形式で視覚化して表示します。システムプロセスの構造を把握するのに便利です。
特定のプロセス (例: Nginx) 情報の照会
ps aux | grep nginx
`ps aux` の結果から `nginx` という文字列が含まれるプロセスのみをフィルタリングして表示します。Nginx サーバーのプロセス状態を確認するのに便利です。
CPU 使用率が高い上位 10 個のプロセスを照会
ps aux --sort -%cpu | head -n 10
すべてのプロセスを CPU 使用率基準で降順にソートして上位 10 個のみを出力します。システムリソースを多く消費しているプロセスを見つけるのに便利です。
特定のカラムのみを選択して出力
ps -eo pid,user,%cpu,%mem,cmd
プロセスの PID、ユーザー名、CPU 使用率、メモリ使用率、そしてコマンドラインのみを出力します。必要な情報だけを簡潔に見るのに便利です。
ゾンビ (Zombie) プロセスの検索
ps aux | grep 'Z'
状態 (STAT) が 'Z' のゾンビプロセスを見つけて、システムリソースの浪費の原因を診断します。