Linuxでよく使うコマンドのメモ -メモリとプロセス-

以下、自分が仕事でよく使うコマンドのメモ。シェルは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

参考
ps~稼働中のプロセスを書き出す
top~プロセスの使用状態をモニタする