SIGTERMは、シグナルハンドラがないとSIGKILLと同じように動作しますか?

SIGTERMは、シグナルハンドラがないとSIGKILLと同じように動作しますか?

SIGTERMとSIGKILLのほとんどの説明はSIGKILLを指します。

SIGTERM や SIGINT とは異なり、[...] はキャプチャまたは無視できません。 [...](ウィキペディア)

これがSIGTERMとSIGKILLの唯一の違いですか?特に、プロセスにSIGTERMハンドラがインストールされていない場合、SIGTERMまたはSIGKILLをプロセスに送信することに違いはありますか?

ベストアンサー1

信号構成がない場合、およびSIGTERMSIGKILL含む基本的な動作は、プロセスを終了する他の信号と同様に、少なくともプロセスが終了するという点で実質的に同じです。 〜のようにSIGUSR1SIGUSR2イルカチョ親プロセスが子プロセスを終了する信号について通知することを指摘しています。 (これはシェルが信号を区別して印刷する方法です。例えば「終了」v。 「ユーザー定義シグナル1」)。

ウィキペディアで述べたように、SIGKILL返されるか無視することはできません。つまり、SIGTERMプロセスが無効になるためにハンドラをインストールする必要はなく、SIGTERM単にブロックまたは無視することができます。sighold()sigrelse()sigignore())。

POSIXの詳細信号処理の基本原理。 Linuxsignal(7)シグナルはマンページにも詳しく説明されています。

おすすめ記事