Linuxシステムを操作していると、「今このマシンで何が動いているのか?」を確認したくなる場面が多々あります。そんなときに欠かせないのが「ps」コマンドです。
「ps(process status)」は、現在動作しているプロセスの一覧を確認できる便利なコマンドで、トラブルシューティングやリソース管理など多くの場面で活躍します。
この記事では、psコマンドの基本的な使い方から、便利なオプション、実践的な活用例までをわかりやすく解説します。Linux初心者の方でもすぐに使えるように、丁寧に説明していますので、ぜひ最後までご覧ください。
psコマンドとは?基本の意味と用途
「ps」は“process status”の略で、プロセスの状態を表示するためのコマンドです。
LinuxはマルチタスクなOSのため、常に多くのプロセスが同時に動作しています。これらのプロセスを把握し、必要に応じて管理するためには、まず「ps」コマンドを使って確認する必要があります。
例えば、何かのプログラムが固まってしまったとき、CPU使用率が急に上がったとき、特定のプロセスID(PID)を知りたいときなど、さまざまなシーンで役立ちます。
psコマンドの基本的な使い方
最もシンプルな使い方は以下の通りです。
ps
このコマンドを実行すると、現在のターミナルセッションで動いているプロセスだけが表示されます。出力例は以下のようになります:
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
5678 pts/0 00:00:01 ps
ここでの各列の意味は:
- PID:プロセスID
- TTY:端末情報(どの端末から起動されたか)
- TIME:CPU時間(どれくらいCPUを使ったか)
- CMD:実行されているコマンド名
この出力結果だけでは情報が少ないため、オプションを組み合わせて使うのが一般的です。
よく使われるオプション一覧
psコマンドはオプションが非常に多彩です。ここではよく使われる主要オプションを紹介します。
-e または -A(すべてのプロセスを表示)
ps -e
# または
ps -A
このオプションを付けることで、システム上のすべてのプロセスが表示されます。
-f(完全なフォーマットで表示)
ps -ef
-e
と-f
を組み合わせると、詳細情報付きですべてのプロセスが表示されます。これは非常によく使われる形です。
出力例:
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:00 ? 00:00:01 /sbin/init
user 2345 1234 0 10:01 pts/0 00:00:00 bash
- UID:実行ユーザー
- PPID:親プロセスID
- C:CPU使用率
- STIME:プロセスの開始時刻
- ?:端末に接続されていないプロセス(デーモンなど)
-u(特定ユーザーのプロセスを表示)
ps -u username
特定のユーザーが実行しているプロセスだけを表示したい場合に使います。
-x(端末に関連しないプロセスも含める)
ps -x
端末に紐づかないプロセス(バックグラウンドなど)も含めて表示したいときに使います。-e
や-f
と組み合わせて使うことも多いです。
オプションを組み合わせた活用例
ps aux:Linuxで最も使われる形式の一つ
ps aux
この形式はBSDスタイルのオプションで、よく使われています。意味は以下の通り:
- a:他のユーザーのプロセスも表示
- u:ユーザー情報付きで表示
- x:制御端末を持たないプロセスも表示
出力は非常に詳細で、次のような情報が表示されます:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user 1234 0.0 0.1 10000 3000 pts/0 Ss 10:01 0:00 bash
grepと組み合わせて特定プロセスを検索する
実際の業務では「特定のプロセスだけ確認したい」場面も多いでしょう。
その場合は「ps + grep」の組み合わせが非常に便利です。
例:nginxというプロセスを探す
ps aux | grep nginx
このようにすれば、nginx関連のプロセスだけを一覧できます。
ただし、grep自身のプロセスも表示されるため、除外したい場合は次のようにします:
ps aux | grep nginx | grep -v grep
プロセスID(PID)を使ってkillコマンドと連携する
psコマンドでプロセスID(PID)を調べたら、次はそのプロセスを終了させたい場合もあります。
その際に使うのがkill
コマンドです。
例:PIDが1234のプロセスを終了させる
kill 1234
強制終了させたいときは次のようにします:
kill -9 1234
-9
は強制的にプロセスを終了させるシグナルです。ただし、乱用は注意です。
実践例:メモリを多く消費しているプロセスを調べる
メモリをたくさん使っているプロセスを確認するには、次のようにソートします:
ps aux --sort=-%mem | head
これは、メモリ使用率が高い順に並べて、上位10個を表示します。トラブル調査やチューニングにとても便利です。
同様に、CPU使用率でソートしたい場合は:
ps aux --sort=-%cpu | head
まとめ:psコマンドはLinux管理の必須ツール
psコマンドは、Linuxのプロセス管理において基本かつ重要なツールです。
今回紹介した使い方を覚えておけば、プロセスの状況を把握しやすくなり、トラブル対応やチューニングにも対応しやすくなります。
最初は「-ef」「aux」「grepとの組み合わせ」あたりから試してみるのがおすすめです。
より深く学びたい方は、man ps
コマンドでマニュアルを読んでみるのもよいでしょう。