久保清隆のブログ

ライフハック、健康、旅行など、役立つ情報を書きます。

Linuxのkillコマンドの使い方

Linuxでプロセスを終了させたい時どうするか。
普通は、killコマンドを使って、プロセスおよびジョブを終了させる。

kill プロセスID

しかし、これではプロセスを終了させられない時がある。
こういう時は、シグナルも送ってあげると解決することが多い。終了の方法はシグナルによって決まる。

killの使い方

kill [オプション] [シグナル] [プロセスID]
  • ※ シグナルとは、プロセスに対して送信するメッセージのようなもの。
  • ※ シグナルはデフォルトで、TERM(15)(終了)が送信される。

通常は、TERMシグナルを受け取ったプロセスは終了する。
しかし、TERMシグナルでプロセスが終了しない場合がある。
そういう時は、シグナルKILL(15)(強制終了)を実行すると、大抵の場合プロセスを終了できる。
ただし、強制終了にした場合、障害を引き起こす可能性があるので、注意が必要。プロセスによってシグナルを使い分ける必要がある。

オプションの種類

オプション 内容
-l シグナルの一覧を出力する。

シグナルの種類

シグナルは、番号でも送れる。

シグナル 内容
HUPまたは1 プロセスを終了後、再起動する(Hangupの略)
INTまたは2 キーボードからの割り込みによるプロセスの終了(Interruptの略)。シェルでC-cするのと同じ。
QUITまたは3 キーボードからのプロセスの中止(Quit)
SIGILLまたは4 不正な命令(Illegal instruction)によるプロセスの中止
KILLまたは9 強制終了(killed)
TERMまたは15 終了(Terminationの略)。デフォルトはこのシグナル。

利用例

ps ax

などで、プロセス一覧を表示させる。
終了させたいプロセス番号を探し、killコマンドを実行する。
プロセス操作系のコマンドについては、pgrep, pkill を使用してプロセスを殺す - 技術メモ帳が参考になる。

  • プロセスを普通に終了させる
# プロセスID(PID)10000に終了のシグナルを送信する。以下は全て同じ動作。
$ kill 10000
$ kill -TERM 10000
$ kill -15 10000
  • プロセスを一時停止させる
# プロセスID(PID)10000に強制終了のシグナルを送信する。以下は同じ動作。
$ kill -INT 10000
$ kill -2 10000
  • プロセスを強制終了させる
# プロセスID(PID)10000に強制終了のシグナルを送信する。以下は同じ動作。
$ kill -KILL 10000
$ kill -9 10000

参考

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道




お読み頂きありがとうございます。
もしブログの内容を気に入って頂けましたら、RSSリーダーの登録よろしくお願いします。
twitter@kbktやってます。
Subscribe with livedoor Reader    にほんブログ村 IT技術ブログ プログラム・プログラマへ  人気ブログランキングへ


◆◆このブログのサイトマップへ◆◆