ps は動いているプロセスの一覧を出すコマンドです。`ps aux` の列の読み方、`grep` で目的のプロセスを探す書き方、`kill` に渡す PID の見つけ方を、ブラウザ上のターミナルで打ちながら確認できます。
最終更新: 2026-09-06
ps [オプション]
いま動いているプロセスの一覧を出します。
$ ps
PID TTY TIME CMD
1234 pts/0 00:00:00 zsh
2847 pts/0 00:01:23 node
3456 pts/0 02:34:56 python3
2345 pts/0 00:00:00 ps
オプションを付けない ps は、いまの端末で自分が動かしているものだけを出します。
PID がプロセス番号で、これが kill に渡す番号になります。
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169232 13120 ? Ss 00:00 0:02 /sbin/init
root 2 0.0 0.0 0 0 ? S 00:00 0:00 [kthreadd]
root 123 0.3 0.2 120344 9876 ? Ss 00:01 0:01 /lib/systemd/systemd-journald
root 456 0.0 0.1 45672 5432 ? Ss 00:01 0:00 /usr/sbin/sshd -D
user 789 0.1 0.1 45672 5432 ? S 10:30 0:00 sshd: user@pts/0
user 1234 0.2 0.1 23456 3456 pts/0 Ss 10:30 0:00 -zsh
user 2847 1.2 1.5 345678 56789 pts/0 S 10:35 1:23 node server.js
user 3456 98.5 4.2 456789 87654 pts/0 R 09:15 154:56 python3 backup_sync.py
root 5678 0.0 0.0 12345 2345 ? Ss 00:01 0:00 /usr/sbin/crond
root 301 0.0 0.0 5678 1234 ? Ss 00:00 0:00 /etc/init.d/networking
systemd+ 201 0.0 0.1 24576 6789 ? Ss 00:00 0:01 /lib/systemd/systemd-resolved
user 2345 0.0 0.0 11234 1234 pts/0 R+ 10:45 0:00 ps
読む列は決まっています。
| 列 | 意味 |
|---|---|
USER | 誰が動かしているか |
PID | プロセス番号 |
%CPU | CPU の使用率 |
%MEM | メモリの使用率 |
RSS | 実際に使っているメモリ(KB) |
STAT | 状態(R 実行中、S 待ち、Z ゾンビ) |
TIME | 使った CPU 時間の合計 |
COMMAND | 何を動かしているか |
この一覧では %CPU が 98.5 の python3 backup_sync.py が明らかに変です。
ps aux を打つ目的は、たいていこの1行を見つけることです。
一覧が長いときは grep につなぎます。
$ ps aux | grep node
user 2847 1.2 1.5 345678 56789 pts/0 S 10:35 1:23 node server.js
止めたいプロセスの PID(ここでは 2847)が分かれば、kill 2847 に渡せます。
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 00:00 ? 00:00:02 /sbin/init
root 2 0 0 00:00 ? 00:00:00 [kthreadd]
root 123 1 0 00:01 ? 00:00:01 /lib/systemd/systemd-journald
root 456 1 0 00:01 ? 00:00:00 /usr/sbin/sshd -D
user 789 456 0 10:30 ? 00:00:00 sshd: user@pts/0
user 1234 789 0 10:30 pts/0 00:00:00 -zsh
user 2847 1234 0 10:35 pts/0 00:01:23 node server.js
user 3456 1234 0 09:15 pts/0 02:34:56 python3 backup_sync.py
root 5678 1 0 00:01 ? 00:00:00 /usr/sbin/crond
root 301 1 0 00:00 ? 00:00:00 /etc/init.d/networking
systemd+ 201 1 0 00:00 ? 00:00:01 /lib/systemd/systemd-resolved
user 2345 1234 0 10:45 pts/0 00:00:00 ps
aux と -ef は、どちらも「全部を詳しく」です。
違いは列で、-ef には親プロセスの番号(PPID)が出ます。
どのプロセスがどれから起動されたのかを追いたいときは -ef を使います。
ps は、重い・止まらない・二重に起動しているを確かめるときに打つコマンドです。
| 場面 | 打ち方 |
|---|---|
| CPU を食っているものを探す | ps aux |
| 特定のアプリが動いているか確かめる | ps aux | grep node |
| 止めたいプロセスの PID を調べる | ps aux | grep node |
| 誰が起動したのかを追う | ps -ef |
| 動いている数を数える | ps aux | grep -c node |
grep 自身も一覧に出ます。
ps aux | grep node を実機で打つと、grep node という行も混ざります。
数を数えるときにずれるので、気になるときは grep -v grep を足してください。
ps はその瞬間の記録です。
一覧は打った時点のもので、勝手に更新されません。
様子を見続けたいときは top を使います。
STAT が Z のものは kill できません。
ゾンビは終了済みで、親が結果を受け取っていないだけの残骸です。
消すには親プロセスのほうを直します。
webterm.appこのサイト
ターミナル応用
特定場面で役立つコマンドを学ぶ
learn.webterm.app別のサイト
