🐥

[1分学習]killコマンドで最低限知っておきたいことまとめ

2021/04/08に公開

はじめに

こんにちはRabeeです。
プロセスを終了させるkillコマンドについてまとめます。

kill コマンド

  • killコマンドとは
    指定したプロセスIDのプロセスにシグナルを送る。
    自分またはスーパーユーザーがプロセスの所有者場合のみ実行可能。
$ man kill
     The kill utility sends a signal to the processes specified by the pid operands.

     Only the super-user may send signals to other users' processes.

実践

airでgoサーバーを起動して、
そのプロセスに対してシグナルを送ってみたいと思います。
https://github.com/cosmtrek/air

  1. まずは終了したいプロセスを見つける

    $ ps
    

    これするとたくさん表示されるのでgrepで絞る(air動かしている場合)

    $ ps | grep air
    


    先頭の数字52686がプロセスIDです

  2. プロセスIDを指定してシグナルを送る

    正常終了パターン1

    • kill 52686 または kill -15 52686 または kill -TERM 52686

      プロセスの後処理が実行されているのがわかる
      cleaning...
      ses you again~
      

    正常終了パターン2

    • kill -2 52686 または kill -INT 52686 (Ctrl+Cと同じ挙動)

      こちらも同じく後処理が実行されている

    強制終了パターン

    • kill -9 52686 または kill -KILL 52686
      ゾンビ(親プロセスがないのに子プロセスだけで生きているプロセスのこと)を終了するときなどに利用

      後処理が行われずに終了している

余談

新社会人の頃psコマンドをよく使っていましたが、
その時先輩から教えられたオプションはefでした。

$ ps -ef | grep httpd

こちらは階層構造で表示することができるので、
関連プロセスを子から順に終了させていく時に利用していました。

時間がないのでこの辺で。。。
他のオプションについては「kill コマンド オプション」などで調べてください。

おしまい

Discussion