SIGQUITはSIGTERMと同じですか?


13

私はCentOS / RHELを学び、現在、プロセス管理についていくつかのことをしています。

私が読んでいるRHCSAの本はkill 1234、SIGQUITの送信としての実行について説明しています。私はいつも、シグナルタイプのスイッチを追加せずにkillコマンドをデフォルトにすべきだと思っていましたkill -15

SIGTERMはkill -15SIGKILLはkill -9そうですか?

CentOS / RHELはわずかに異なる方法を使用しkill -15ていますか、それとも間違えただけですか?

編集:kill -lSIGQUITを提供kill -3し、キーボードを使用してプロセスを終了することに関連付けられているようです。man 7 signalまた、SIGQUITがkill -3であると述べているので、SIGQUITがkill -15デフォルトであると述べるのは私の本が間違っているとしか思いません。

回答:


13

いいえ、それらは同じではありません。両方のデフォルトアクションはプロセスを終了することですが、SIGQUITコアもダンプします。たとえば、Linuxのmanページを参照してくださいsignal(7)killデフォルトではSIGTERMを送信するため、SIGQUITがデフォルトであるという言及は実際には単なる間違いであるとしか想像できません。そのデフォルトはPOSIXにあり、SIGTERM、SIGKILL、SIGQUITの数値も同様です。


1
うん。SIGQUITを-15としてリストしているため、この本は間違っていると思います。シグナル-15は、Linuxの世界でプロセスを終了するための確立された方法であり、間違いが間違いであることは間違いありません。あなたの答えを正解としてマークします。SIGQUITの機能を拡張していただきありがとうございます。
-bitofagoob

1

2つのkillコマンドがあり、1つはprocpsに、もう1つはシェルにあります。どちらもデフォルトとしてSIGTERMを使用します。procps killの場合、コマンドヘルプ、マニュアルページ、およびkillソース(最新のmasterブランチのskill.c行724)はすべてSIGTERMと表示されます。

信号について覚えておくべきことの1つは、「通常の束」を過ぎてx86 Linuxシステムとは少し異なるシステムを使用すると、信号が存在しないか、番号が異なることがあります。procps(およびおそらく他の多くのプログラム)は、コンパイル時に数値を焼き付けます(本質的には、インクルードファイルが何であれ、signum.hを探します)。

@ilkkachuがPOSIXにあるように、SIGTERMについて心配することはありません。


スキルのマンページには、スキルとスニースは廃止されていると書かれています。ユーザースペースから削除されていないのはなぜですか?とにかく興味深い情報。ありがとう。
bitofagoob
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.