【killall】Linuxでプロセスを終了するコマンド

Linuxのkillallコマンドを使うことで、プロセスを停止することができます。

killallコマンドの書式

killallコマンドの書式は以下の通りです。

$ killall [オプション] プロセス名

オプション

-i シグナルを送る前に確認メッセージを表示する
-l シグナル名の一覧を表示する
-r  プロセス名を正規表現で指定する
-e  指定した名前が完全一致でないとシグナルを送らない

プロセスを停止する

プロセスが終了されたか確認するために、事前にpsコマンドで現在起動しているプロセスを確認してみます。

$ ps ax
PID  TTY      STAT   TIME COMMAND
2016 ?        S      0:00 uxterm -u8
2020 pts/0    Ss     0:00 bash
2033 pts/0    S+     0:00 vi text_1
2035 ?        S      0:00 xterm -class UXTerm -title uxterm -u8   
2039 pts/1    Ss     0:00 bash
2051 pts/1    S+     0:00 vi text_2
2053 ?        S      0:00 xterm -class UXTerm -title uxterm -u8
2057 pts/6    Ss     0:00 bash
2057 pts/6    R+     0:00 ps ax

上記の例では、PIDの項目から2033と2051という2個のviプロセスが確認できます。

killallコマンドでは、プロセス名を指定してプロセスを終了させます

$ killall vi

再度psコマンドにより、プロセスを表示させます。

$ ps ax
PID  TTY      STAT   TIME COMMAND
2016 ?        S      0:00 uxterm -u8
2020 pts/0    Ss     0:00 bash
2035 ?        S      0:00 xterm -class UXTerm -title uxterm -u8   
2039 pts/1    Ss     0:00 bash
2053 ?        S      0:00 xterm -class UXTerm -title uxterm -u8
2057 pts/6    Ss     0:00 bash
2057 pts/6    R+     0:00 ps ax

上記の結果からPIDの2033と2051が終了していることが確認できます。

上記の例のように、killallコマンドは実行している複数のプロセスすべてを終了させますが、特定のプロセスのみを終了させたい場合は、killコマンドを使用します。

killコマンドはプロセスIDを指定して終了させます

$ kill 2033

プロセスを強制終了する

プロセスを強制終了するには「-9」を指定し、SIGKILLシグナルを送信します。

$ killall -9 vi

シグナルは他にも存在し、主に使われるシグナルは以下の通りです。

1 SIGHUP 再起動
6 SIGABRT 中断
9 SIGKILL 強制終了
15 SIGTERM 終了
17 SIGSTOP 停止
18 SIGCONT 再開

確認メッセージを表示する

「-i」オプションを使用することで、停止前に確認を求めるようにできます。

$ killall -i vi
viをkillしますか?(Y/N)

上記のような入力が求められるので、YかNを入力し終了するかどうか決定します。