こんにちは。iQeda [@iQeeeda] です。
やばい!処理が固まった!どうしよう!
バッチ処理が超遅い!一旦止めたい...
バッチ処理が超遅い!一旦止めたい...
そんなときはプロセスを終了するのも 1 つの手です...
(自己判断でお願いしますね)
今回は Linux コマンドで PC 処理を終わらせる方法、
すなわち
すなわち
kill コマンドでプロセスを終了させる方法について解説します!kill コマンドの種類
プロセスを終了させるには、下記のコマンドを使います。
kill- プロセス ID で対象を指定する
killall- コマンド名で対象を指定する
- そのコマンド名で動いているプロセス全てを終了する
シグナルの種類
kill 系のコマンドはプロセスに対して、
シグナルと呼ばれるメッセージを送ります。
シグナルと呼ばれるメッセージを送ります。
そのシグナルの意味を通じてプロセスとやりとりします。
シグナルはたくさん種類があって kill -l コマンドで確認できますが、
大きくこの 2 つだけ知っておけば大丈夫です。
| シグナル | 意味 |
|---|---|
| 9 または SIGKILL | 強制終了 |
| 15 または SIGTERM | 正常終了 |
kill のデフォルトシグナル
kill コマンドでシグナルを指定しない場合、デフォルトでシグナル 15 (正常終了) が使われます。
kill コマンドの使い方
kill -[シグナル] [プロセスID] と覚えれば大丈夫です。プロセス ID は半角スペース区切りで複数指定できます。
先述しましたが、正常終了する場合はシグナルを省略できます。
まずプロセス ID を調べる
# Docker のプロセスを kill したいので Docker のプロセス ID を調べる ps aux | grep docker # pgrep コマンドを使うとシンプルにそのプロセス ID だけ表示してくれます pgrep -f docker -G docker
調べたプロセス ID で kill する
プロセス ID を 1234 とする場合の例です。
# 正常終了 kill 1234 kill -15 1234 kill -SIGTERM 1234 # 強制終了 kill -9 1234 kill -SIGKILL 1234
killall コマンドの使い方
killall -[シグナル] [コマンド名] と覚えれば大丈夫です。半角スペース区切りでコマンド名は複数指定できます。
こちらも正常終了する場合はシグナルを省略できます。
killall docker killall -9 docker
pkill コマンドの使い方
あまり利用機会はないと思いますが、pgrep コマンドと似た記述ができる pkill コマンドというのもあります。
こちらは
pgrep 結果のプロセス ID をまとめて kill することができます。
# 以下の pgrep 結果を pkill でまとめて kill することができる # pgrep -f docker -G docker docker pkill -f docker -G docker
しかし peco を使った kill が一番ラクです
前回の記事内容ですが、
peco というライブラリを使って pk コマンドを実装しています。
こちらはインクリメンタルサーチでプロセスを絞って Enter を叩くと、
即座にそのプロセスを kill します。
即座にそのプロセスを kill します。
あまりに簡単すぎて少し慎重にならないといけませんが、
よければ試してみてください。
No comments yet