ps - サーバー管理でよく使うコマンド
起動中のプロセスの状態を表示します
■よく使う形(例)
※プロセスの詳細情報を表示する。
# ps aux
※端末に結びつけたすべてのプロセスの状態を詳細に表示します。
# ps -el
# ps aux
※端末に結びつけたすべてのプロセスの状態を詳細に表示します。# ps -el
一般的にもよく使うコマンドです。
オプションが豊富で、プロセスの状態をいろいろな形で見つけることができます。
例えば、「開発中のプログラムを実行したら、なかなか帰ってこなくなった」という場合、psコマンドを使うと、CPUやメモリの使用率から、無限ループが見つかったりします。(あまりいい例えではないですが....。) こんなときプロセスIDをpsコマンドで調べて、強制終了を行います。(killコマンド)
その他、auxの組み合わせのオプションを使うと、より詳しくプロセスを見ることができます。プロセスの親子関係や、バックエンドで実行されているプロセスの識別など、容易に行うことができます。
このpsコマンド、ちょっとオプションが変わっています。その昔、UNIXはBSD系とSystemV系とで別々に開発されてきました。基本的に同じ UNIXではありますが、使い勝手が少し違っていました。Linuxはそんなことも考えてか、psコマンドでは、両方のオプションが使えたりします。ハイ フン(-)を使うのが、SystemV系ですね。
■主な出力データの見方
| 項目 | 意味 | コメント |
|---|---|---|
| UID | ユーザーID | |
| PID | プロセスID | このプロセスのID。killコマンドなどでも使用する |
| PPID | 親のプロセスID | 呼び出された親のプロセスID |
| NI | ナイス値 | |
| WCHAN | カーネル関数名 | プロセスが休眠している時のカーネル関数名 |
| TTY | 端末の種類 | 端末の種類と端末番号を表示 |
| USER | 実行ユーザー名 | |
| RSS | プロセスの実メモリサイズ | |
| STAT | ステータ | プロセスのステータス R:実行可能 S:停止プロセス Z:ゾンビプロセス W:スワップアウトしたプロセス |
| START | 開始時刻 | プロセスの開始時刻 |
| TIME | 実行時間 | |
| CMD COMMAND |
実行コマンド | オプションにa,u,xを使うと、プログラムの絶対パスを見ることができる。プロセスがどのように実行されているかがよくわかる。 |
■主なオプション
| オプション | 機能説明 |
|---|---|
| -l | 詳細を表示。 |
| -e | すべてのプロセスを表示。 |
| a | 端末に紐づけたプロセスをすべて表示する。 |
| u | CPU使用率、メモリ使用率、開始時間などの詳細情報を表示する。 |
| x | 端末に紐づかないプロセスもすべて表示。 |