・メモリ上で実行中のプログラムのことをプロセスという。
●プロセスの情報を表示
ps [オプション]
オプション一覧
a 他のユーザーの情報も表示
u ユーザー名を表示
x 端末から実行されたものではないプロセス(サーバープロセスなど)も表示
プロセスを起動すると、プロセスごとに固有のID番号が割り当てられる。これをプロセスIDという。
※psコマンドでは「-」をつけない。
●プロセスの親子関係の表示
プロセスは実行中の他のプロセスから起動される。これをフォークという。起動元のプロセスを親プロセス、親プロセスが起動したプロセスを子プロセスという。
pstree [オプション]
topコマンドを使うとプロセスの実行状況をモニタリングできる。
Qキーを押すとtopコマンドを終了できる。
・プロセスに送る信号をシグナルという。
主なシグナル
9 KILL 強制終了
15 TERM 終了(デフォルト)
18 CONT 再開
19 STOP 一時停止
●シグナルの送信 KILLコマンド
kill -[シグナルID] プロセスID
kill -s [シグナル名] プロセスID
※killコマンドではデフォルトでTERMコマンドが送られるので、シグナルを指定しなくても構わない。もし、TERMシグナルを送ってプロセスが反応しないときは、プロセスが以上動作を起こしている可能性がある。そのままでは終了しないのでkillコマンドを使う。
●プロセスの強制終了
kill -s KILL プロセスID
※一般ユーザーは、自身の実行したプロセスのみ終了させることができる。rootユーザーは全てのプロセスを終了することができる。
●killallコマンド
killallコマンドを使うとプロセスIDではなく、プロセス名を指定できる。
例)killall −10 vim
vimというプロセス名のプロセスを終了。
・ユーザー側の処理の単位をジョブという。
ジョブにはフォアグラウンドジョブとバッググラウンドジョブがある。
バッググラウンドジョブを実行するには、コマンドラインの末尾に「&」とつける。
●実行中のジョブを確認
jobs
●ジョブをフォアグラウンドで確認
fg [%ジョブID]
フォアグラウンドでジョブが実行されている最中にCtrl+Zキーを押すと、そのジョブを一時停止状態にできる。そのジョブをバッググラウンドで再開させるには、bgコマンドを使う。
bg [%ジョブID]