killコマンドの使い方
プログラムの不具合で終了できないプロセスは
killコマンドで終了させる
killコマンドは、実行中のプロセスに対して様々なシグナルを送信する
シグナルはLinuxカーネルに実装されている
プロセス間で連絡を取り合うための仕組みのこと
killコマンドを使うには
送るシグナル
プロセスID(PID)
がわからないと使えない
CPUやメモリを占有しているPIDは
topコマンドで
c
m
で調べることができる
これに対して
SIGTERMという
プロセス終了シグナルを送信すればいい
プログラムの実装にもよるけど
プロセスは
SIGTERMを受け取ると
プログラム内に実装されている終了処理を行う
これなら
オープンしているファイルを閉じたり
ログの出力してから終了というように
安全にプロセス終了できる
ただし、プロセスにシグナルをおくるには
そのプロセスのユーザー権限が必要
この権限は、topコマンドで
USERの項目に載っている
これがrootならroot権限が必要
もし、1980のプロセスを終わらせるなら
kill -SIGTERM 1980
とする
しかし、プロセス暴走だと
これでも終わらない
そんなときには
強制終了シグナル SIGKILL を使う
これは、強制終了なのでファイル破損リスクなどもあるから
ある意味最終手段
もし、1980のプロセスを強制終了するなら
kill -SIGKILL 1980
まず、SIGTERMで試して
どうしようもないなら SIGKILL を使う
ほかにも
killコマンドで使えるシグナルはたくさんあるので
kill -L
とか
man 7 signal
でマニュアル見るといい
よく使うのは
SIGUP
SIGUPは、
設定ファイルを編集後
変更が反映されるように、デーモン再起動するときなどに使うシグナル
あと、同じ名前のプロセスが、複数あるときには
killallコマンドを使えば
同じ名前のプロセスを一度で終了できる