以下、自分が仕事でよく使うコマンドのメモ。シェルはBashを使用。今回はメモリやプロセス関係に焦点を絞った備忘録。
搭載メモリ確認する
搭載メモリを確認する。
cat /proc/meminfo
メモリの使用量を確認する
メモリの使用量や空き容量の一覧を確認する。-mオプションを付けることでメモリの容量をメガバイト単位で表示。
free
動作しているプロセスを確認する
現在システム上で動作しているプロセスを確認する。aオプションでは全てのユーザーが実行中のプロセスを表示し、xオプションではユーザーが実行するものではないプロセスも表示出来る。
ps ax
上記に加えてパイプ処理とmoreコマンドを組み合わせると、標準出力が画面内に収まりきらない場合、1画面ずつストップさせながら出力することが出来る。moreコマンドはqで抜けることが出来る。
ps ax | more
パイプ処理とgrepコマンドを組み合わせると、[プロセス名]に指定したプロセスのみを表示することが出来る。
ps ax | grep [プロセス名]
以下はpsコマンド実行後の項目の意味である。
項目名 | 説明 |
---|---|
USER | プロセスの所有ユーザー |
PID | プロセス番号 |
&CPU | CPUの占有率 |
&MEM | 実メモリでの占有率 |
SIZE | 仮想分も含めた使用サイズ(Kバイト) |
RSS | 実メモリ上の使用サイズ(Kバイト) |
TTY | 端末名 |
STAT | プロセスの状態 |
R | 移動中 |
S | 一時停止中 |
D | 停止不可能な一時停止中 |
T | 終了処理中 |
Z | ゾンビプロセス(既に実体は無い) |
W | 実メモリ上に無くて、スワップアウトしている |
N | nice値。プロセスの優先度を示す値。範囲は-20〜19で、19が優先度が一番低い。 |
START | プロセスの開始時刻 |
TIME | プロセスの総実行時間 |
COMMAND | 実行コマンド名とパス(シェル表記の場合もあり) |
動作しているプロセスを確認する
topでは5秒おきにプロセスの状態を更新しながら表示をすることが出来る。デフォルトではプロセスの表示の更新タイミングは5秒毎だが、-dオプションの後に秒を記述することでプロセスの表示を更新するタイミングを変更することが出来る。
top
現在稼働中のジョブを確認する
現在稼働中のジョブを番号付きで一覧表示することが出来る。
jobs
jobsコマンドは以下のような出力を行う。
[1] Stopped vim sample.txt [2]- Stopped ls -a /bin | more [3]+ Stopped ls -l /sbin | less
上記の書式を表すと、以下のようになる。識別子は、最新のジョブに+、最新から2番目のジョブに-が割り当てられる。
[ジョブ番号]識別子 ジョブの状態 ジョブの内容
プロセスやジョブを終了する
何らかの理由で終了できずに残ってしまったプロセスまたはジョブを削除するには、killコマンドを使用する。一般ユーザは自分が実行したプロセスまたはジョブしか終了できない。終了の方法はシグナルによって決まる。通常よく使うシグナルはSIGHUP(終了して再起動)、SIGKILL(強制終了)など。
kill [シグナル][プロセスIDまたはジョブ番号]
シグナルには以下の種類があり、シグナル番号、もしくはシグナル名を指定して使用する。
シグナル番号 | シグナル名 | 意味 |
---|---|---|
1 | SIGHUP | 端末との接続が切断された(Hangup)ことによるプロセスの終了 |
2 | SIGINT | キーボードからの割り込み(Interrrupt)によるプロセスの終了 |
3 | SIGQUIT | キーボードからのプロセスの中止(Quit) |
4 | SIGILL | 不正な命令(Illegal instruction)によるプロセスの中止 |
5 | SIGTRAP | トレース(Trace),ブレーク・ポイント・トラップ(breakpoint trap)によるプロセスの終了 |
6 | SIGABRT | abort関数によるプロセスの中断(Aborted) |
8 | SIGFPE | 浮動少数点例外(Arithematic exception)によるプロセスの終了 |
9 | SIGKIL | Killシグナルによるプロセスの終了(killed) |
11 | SIGSEG | 不正なメモリー参照(Segmentation fault)によるプロセスの終了 |
13 | SIGPIP | パイプ(Pipe)破壊によるプロセスの終了 |
14 | SIGALR | alerm関数によるプロセスの終了 |
15 | SIGTER | 終了(Termination)シグナルによるプロセスの終了 |
プロセス番号を指定してkillすることも出来る。
#1625番のプロセスを強制終了する
$kill -9 1625
プロセス名を指定してkillすることも出来る。
kill -HUP httpd