Linuxコマンド一覧

psコマンド|いま動いているプロセスを見る

__ __ _ _____
\ \ / /__| |_|_ _|__ _ __ _ __ ___
\ \ /\ / / _ \ '_ \| |/ _ \ '__| '_ ` _ \
\ V V / __/ |_) | | __/ | | | | | |
\_/\_/ \___|_.__/|_|\___|_| |_| |_| |_
 
ps を試すためのサンドボックスです。実機のファイルには影響しません。
user@webterm:~/project$
 

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プロセス番号
%CPUCPU の使用率
%MEMメモリの使用率
RSS実際に使っているメモリ(KB)
STAT状態(R 実行中、S 待ち、Z ゾンビ)
TIME使った CPU 時間の合計
COMMAND何を動かしているか

この一覧では %CPU98.5python3 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 に渡せます。

もう1つの書き方

$ 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 を使います。

STATZ のものは kill できません。 ゾンビは終了済みで、親が結果を受け取っていないだけの残骸です。 消すには親プロセスのほうを直します。

手を動かして覚える

webterm.appこのサイト

learn.webterm.app別のサイト

>_WEBTERM LEARN

WebTerm Learn|1つのコマンドから、使える状態へ

コマンドは単体で覚えるより、実際の作業の流れの中で使うほうが身につきます。順番に積み上げていくコースがあります。

コースを見る

関連するコマンド

kill / top / grep / jobs

よくある質問

ps と ps aux は何が違いますか?
素の `ps` は自分がいまの端末で動かしているものだけを出します。`ps aux` は、ほかのユーザーのものやバックグラウンドのものまで含めて全部出します。
aux にダッシュが付かないのはなぜですか?
ps には書き方が2系統あり、`aux` は BSD 形式、`-ef` は UNIX 形式だからです。どちらも「全部のプロセスを詳しく」という意味で、出る列が少し違うだけです。
特定のプロセスを探すにはどうしますか?
`ps aux | grep node` のように `grep` へつなぎます。実機では grep 自身も一覧に出るので、気になるときは `grep -v grep` を足します。
PID は何に使いますか?
`kill` に渡します。`ps` で止めたいプロセスの PID を調べ、`kill <PID>` で終了を頼む、という流れになります。
top との違いは何ですか?
`ps` はその瞬間の一覧を1回出して終わり、`top` は更新され続けます。記録に残したいときや `grep` につなぎたいときは `ps` です。