ps コマンド 2017/02/19
動いているプロセスの一覧を見るコマンド。
私がよく使うオプションは aux
。
例
$ ps aux
メモリ使用量を表すVSZやRSSの列の単位は、キロバイト。1000バイトなのか1024バイトなのか知らんが。
あとは、特定のPIDを持つプロセスがなんのコマンドなのかを調べるために、PIDだけを指定する。
$ ps 13051
CPU占有率は、いまこの瞬間のCPU占有率ではなく、プロセスごとにそのプロセスが起動してからの平均のCPU使用率である。リアルタイムな状況を見るにはtop
コマンドのほうがよい。
Java(JVM)のプロセスを見るにはjps
コマンドも使える。
HOWTO
プロセスの親子関係をツリーで表示するには 2013/10/08
$ ps auxf
f
がツリーで表示させるオプション。
-> pstree
特定の名前のプロセスをすべてkillするには 2015/02/04
たとえば "ruby"
が名前に含まれるプロセスの場合、
まず一覧を表示してkill対象を確認する。
$ ps aux | grep ruby
これだと、grep ruby
しているプロセス自体も表示されることがあるので、以下のようにすると grep
が含まれるプロセスを除外できる。
$ ps aux | grep ruby | grep -v grep
次にプロセスIDの一覧だけにする。
$ ps aux | grep ruby | grep -v grep | tr -s ' ' | cut -d ' ' -f2
それをkillする。
$ kill `ps aux | grep ruby | grep -v grep | tr -s ' ' | cut -d ' ' -f2`
特定のプロセスIDだけを表示するには 2013/07/17
$ ps プロセス番号
は
$ ps --pid プロセス番号
と同じ。
プロセスの中のスレッドを確認するには 2014/05/13
-L
を付けると、スレッド数のカラムが増えて、さらにプロセス一覧ではなくスレッド一覧が表示される。
$ ps aux -L
m
を付けると、プロセスごとにそのスレッド一覧が表示される。
$ px auxm
CPUの占有率でソートするには 2017/02/19
ps
コマンドのソートのオプションがよくわからなかったので、sort
コマンドを使って無理やりこんな感じ。
$ ps aux | sort -rk3
解説:
ps
コマンドの出力の3列目でソートするには sort -r -k 3,3
をパイプでつなげる。
CPUの使用率が同じ数字の場合に、メモリの使用率でソートしたい場合は
sort -r -k 3,4
とすれば、3列目と4列目でソートしてくれる。
ただ、これをするぐらいなら、sort -r -k 3
としてしまえば、3列目が同じなら4列目、
4列目も同じなら5列目、と3列目以降のすべての列を見てくれるし、こっちのほうが2文字タイピングが少なくてよい。
さらにタイピングを短くするためにオプションをつなげてしまうことにして、最初に書いた sort -rk3
というコマンドになる。
(psコマンドのCPU占有率は、いまこの瞬間のCPU占有率ではなく、プロセスごとにそのプロセスが起動してからの平均のCPU使用率なので、
CPUの占有率でソートすること自体にあまり意味がない。いまこの瞬間のCPU占有率を見るにはtop
コマンドのほうがよい)
メモリの消費量でソートするには 2016/09/23
$ ps aux --sort -vsize