すべての信号が無視されるとどうなりますか?

すべての信号が無視されるとどうなりますか?

私が知っている限り、いくつかの信号はプロセスを停止/継続し、終了/終了するために使用されます。すべての信号を無視するようにプロセスに指示するとどうなりますか?ゾンビでしょうか、それとも殺せない存在でしょうか?

ベストアンサー1

一部の信号は無視できません。 SIGKILLは常に反応する機会を与えずにプロセスを終了します。 SIGSTOPは常に反応する機会を与えずにプロセスを一時停止します。一部のUnixバリアントは、無視または処理できない他の信号を提供する可能性があります。 Linuxには標準のKILLとSTOPのみがあります。

プロセスがSIGKILLで生き残ることができる唯一の方法は、現在中断できないシステムコール状態にある場合です。プロセスはコードを実行できなくなりますが、システムコールが完了するか、中断可能なポイントに達するまで保持されます。これは一般的に観察するには短すぎますが、Dドライバの欠陥、ハードウェアの欠陥、または時にはネットワークファイルシステムを使用している(状態の遅いプロセス)ことがわかります。「kill -9」が動作しない場合はどうなりますか?

殺すことができないプロセスは「ゾンビ」ではありません。すでに実際に存在する「ゾンビプロセス」という用語は、デッドプロセスに対応するプロセステーブルエントリを意味する。バラよりLinuxでゾンビプロセスを処理する方法

おすすめ記事