Linuxのkillallコマンドを使うことで、プロセスを停止することができます。
killallコマンドの書式
killallコマンドの書式は以下の通りです。
1 |
$ killall [オプション] プロセス名 |
オプション
-i | シグナルを送る前に確認メッセージを表示する |
-l | シグナル名の一覧を表示する |
-r | プロセス名を正規表現で指定する |
-e | 指定した名前が完全一致でないとシグナルを送らない |
プロセスを停止する
プロセスが終了されたか確認するために、事前にpsコマンドで現在起動しているプロセスを確認してみます。
1 2 3 4 5 6 7 8 9 10 11 |
$ 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コマンドでは、プロセス名を指定してプロセスを終了させます。
1 |
$ killall vi |
再度psコマンドにより、プロセスを表示させます。
1 2 3 4 5 6 7 8 9 |
$ 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を指定して終了させます。
1 |
$ kill 2033 |
プロセスを強制終了する
プロセスを強制終了するには「-9」を指定し、SIGKILLシグナルを送信します。
1 |
$ killall -9 vi |
シグナルは他にも存在し、主に使われるシグナルは以下の通りです。
1 | SIGHUP | 再起動 |
6 | SIGABRT | 中断 |
9 | SIGKILL | 強制終了 |
15 | SIGTERM | 終了 |
17 | SIGSTOP | 停止 |
18 | SIGCONT | 再開 |
確認メッセージを表示する
「-i」オプションを使用することで、停止前に確認を求めるようにできます。
1 2 |
$ killall -i vi viをkillしますか?(Y/N) |
上記のような入力が求められるので、YかNを入力し終了するかどうか決定します。