プロセスとは、システム上で動作しているプログラムの最小単位。PID(プロセスID)およびプロセス名(コマンド名)はpsコマンドで調べることができます。
ps [オプション]
psオプション一覧
・a 他のユーザのプロセスも表示(xオプションとの併用で全てのプロセスを表示)
・u プロセスの実行ユーザ名も表示
・x 制御端末のないデーモン等のプロセスも表示
・f プロセスの親子関係をツリー上で表示(pstreeと同様)
・-e 全てのプロセスを表示
・-f 完全なフォーマットでプロセスを表示
・-p | p PID 指定したPIDのプロセスを表示
・-l | l 親プロセスのPIDや実行優先度を決定するnice値(NI)なども併せて表示
また、pgrepコマンドで実行中のプロセスから特定の名前を持つプロセスIDを検索することができます。
pgrep [ オプション ] 検索パターン
検索パターンには拡張正規表現が指定できます。-lオプションを使うと、検索パターンにマッチしたプロセス名も表示されます。
-uオプションを使うと、特定のユーザーが実行したプロセスのみを検索対象とすることができます。
例)
シグナル
・HUP(SIGHUP) 1 ハングアップ(端末の切断による終了)
・INT(SIGINT) 2 割り込みによる終了(Ctrl+Cとおなじ)
・KILL(SIGKILL) 9 クリーンアップせずに終了(強制終了)
・TERM(SIGTERM) 15 クリーンアップして終了(デフォルト)
・CONT(SIGCONT) 18(環境依存) 一時停止のプロセスを再開
・STOP(SIGSTOP) 19(環境依存) 一時停止
・TSTP(SIGTSTP) 20(環境依存) 端末から入力された一時停止(Ctrl+Zと同じ)
kill、killall、pkillコマンドで、プロセスに終了や再起動などのシグナル(命令)を送ることができます。
kill [-シグナル名または-シグナル番号] プロセスID
または
kill -s [シグナル名またはシグナル番号] プロセスID
killall [-シグナル名または-シグナル番号] プロセス名(コマンド名)
または
killall -s [シグナル名またはシグナル番号] プロセス名(コマンド名)
pkill [-シグナル名または-シグナル番号] プロセス名(コマンド名)
または
pkill --signal [-シグナル名または-シグナル番号] プロセス名(コマンド名)
killコマンドはプロセスID(PID)を使用して単一のプロセスにシグナルを送りますが、killallコマンドはプロセス名(コマンド名)を使用して、同じプロセス名の全てのプロセスに対してシグナルを送ります。
例) kill -SIGHUP 1133
例) killall -SIGHUP mycommand
また、pkillコマンド、もしくはkillallの-rオプションを使うことで、プロセス名を拡張正規表現で指定してシグナルを送ることができます。
また、killコマンドはジョブ番号を指定し、ジョブにシグナルを送る事もできます。ジョブ番号は「%ジョブ番号」と指定します。
例) kill %2
ジョブ番号はjobsコマンドで確認することができます。