こんにちは。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 します。
あまりに簡単すぎて少し慎重にならないといけませんが、
よければ試してみてください。
お仕事ください!
僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。 なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。
カテゴリ「Develop」の最新記事
コメント