プロセスを終了するkillコマンドの使い方まとめ!【Linuxコマンド集】

  • このエントリーをはてなブックマークに追加
  • Pocket
kill-command

killは実行しているプロセスを終了するコマンドだ。

普通ではない動作をしているプロセスを終了する。他にも正規表現検索などでコンピュータに負荷をかけている動作を止める時などに使用する。

今回は実行中のプロセスの確認と、killを使ったプロセスの終了の方法を解説する。Linuxユーザーなら覚えておかなければならないコマンドだ。ぜひ把握しておこう。

また、下記ページで強制終了については詳しくまとめている。参考にしていただければと思う。

killコマンドの基本

コマンドの基本動作

使い方は、次のとおりだ。

$ kill プロセス番号(PID)

では実際に操作してみよう。

仮に、今、バックグラウンドで次のような、/etcディレクトリ内の各ディレクトリ内のファイルに書いてある「stepという」文字を探すというコマンドが実行されているとしよう。

$ grep -r step /etc

/etcディレクトリはLinuxの各種設定の膨大な情報が100以上のファイルに渡って記載されている。

その中からstepという文字を探しているのだ。

かなりな時間と負荷がかかっていることが想像できるだろう。

まず、psコマンドの-aオプションで、現在、実行しているプロセスを確認してみよう。

$ ps -a

psコマンド

プロセス番号(PID)24573番がgrepの動作をしている。

これを止めるためには次のコマンドになる。

$ kill 24573

killコマンド

プロセス番号(PID)24573番のプロセスが終了した。

実行しているプロセスをpsコマンドの-aオプションで見てみよう。

$ ps -a

ps確認

プロセス番号(PID)24573番で動いていたgrepのプロセスが終了し、表示されていない。

表示されていないプロセスに対して、killコマンドを実行しても特に影響はない。

プロセス番号(PID)27567番は、存在しないプロセスだが、このプロセスを終了しようとしてみよう。

kill ない場合

そのようなプロセス番号がないメッセージが表示されただけで、特に影響はない。

しかし、プロセスの中にはシステムとして重要なプロセスもあるので、実際に終了したいプロセスかどうか、確認の上、慎重に操作していくべきだ。

killコマンドのオプション

killコマンドにはいくつかオプションもある。基本的には上のようにオプション無しで使うのが通常だが、活用できる機会があるはずだ。

-[シグナル名またはシグナルID]オプション

killコマンドは「プロセスを殺す」というだけではなく、本来的にはプロセスに対してシグナルを送るコマンドだ。シグナルとはプロセスに送られるメッセージのことを指すと思ってほしい。

終了や再起動などのシグナルを受け取ると、プロセスはそのように動くわけだ。

$ kill -[シグナル名またはシグナルID] PID

でシグナルを指定して送ることができる。シグナルにはそれぞれ名前とIDがあり、どちらでも反応してくれる。

下記のようにも書ける。

$ kill -s [シグナル名またはシグナルID] PID

$ kill -SIGシグナル名 PID

シグナルの種類は下記コマンドで確認しよう。

-l オプション

利用できるシグナルの一覧を表示するコマンドだ。実際に見てみよう。

$ kill -l

kill -l

このようにたくさんのシグナルが利用できることがわかる。それぞれのシグナルIDもわかるはずだ。全部解説しても意味があるとも思えないので、使いやすいものだけご紹介しよう。

シグナル名 シグナルID 動作
HUP 1 ハングアップ(端末が制御不能もしくは切断による終了)
INT 2 キーボードからの割り込み(Ctrl+Cと同じ)
KILL 9 強制終了(デフォルトよりも強制的に修正する)
TERM 15 終了(デフォルトの設定だ)
CONT 18 停止しているプロセスを再開
STOP 19 一時停止

ジョブとプロセス

よく混乱する用語で、ジョブとプロセスがある。どちらもコンピュータの処理のことという意味では同じだ。

ジョブは、処理の流れ全体を指し、プロセスは、一つ一つの作業のことを指す。例えるなら、自動車を一台作るのに、部品を作るのがプロセス、自動車を一台完成させる作業自体がジョブだ。

一つのプロセスだけで済むジョブもあるし、何百というプロセスを組み合わせて一つのジョブを成すこともあるだろう。

killコマンドはジョブではなく、一つのプロセスを終了させる。ジョブとプロセスについては下記が詳しい。

kill関連コマンド

killコマンドに関連して、プロセスやジョブに関係したコマンドを紹介する。

killallコマンド

プロセスIDではなく、プロセス名でも終了させることができるコマンドだ。使い方はkillコマンドと同じだが、便利だ。

psコマンド

現在実行しているプロセスを表示する。

nohupコマンド

ログアウトした後もコマンドを実行し続ける。

まとめ

killコマンドはLinuxユーザであれば知っておきたいコマンドだ。

プロセスを実行したユーザーがコマンドの実行を終了するには、ctrl+Cのショートカットキーで終了することもできるのでこちらも押さえておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメント

コメントを残す

*