![Kill コマンドのフラグをデコードする](https://rvso.com/image/31662/Kill%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E3%83%95%E3%83%A9%E3%82%B0%E3%82%92%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B.png)
Linuxシェルスクリプトの本でこのコマンドを見ました
$ kill -HUP 1234 >killout.txt 2>killerr.txt
コマンドが何をするのかは分かるのですが、フラグが理解できません-HUP
答え1
Linux では を試してくださいman 7 signal
。
kill -HUP 1234
は「プロセス 1234 に SIGHUP シグナル (1) を送信する」という意味なので、 と同等ですkill -1 1234
。kill によって送信されるデフォルトのシグナルは SIGTERM (15) なので、 はまたはkill 1234
と同等です。kill -TERM 1234
kill -15 1234
答え2
-HUP
一般的な 1 文字オプション構文のように、 、 の 3 つのフラグではありません。歴史的な理由により、H
コマンドU
は、ダッシュ ( ) が前に付いたオプションのシグナル名またはシグナル番号を取ります。P
kill
-
kill -1 1234
kill -HUP 1234
( ではkill 1 1234
、プロセス 1 と 1234 にデフォルトのシグナル (SIGTERM) が送信されます。)
おそらくマニュアルページには次のような内容が記載されています:
kill [ -signal | -s signal ] pid ...
つまり-signal
、ダッシュの後に信号指定 (名前または番号) を続けることができます。または、-s
オプションの後に信号名を続けることもできます。これらは同じ意味を持つ 2 つの異なる構文です。
kill -l
使用可能な信号名と対応する番号をリストします。