私は Linux 用に開発しており、デーモンが強制終了されたときにディスクに書き込む必要があります。SIGTERM
デーモンは、そのシグナルを受信したときにディスクをリッスンしてディスクに書き込むように構成できます。
また、ログイン マネージャーPrepareForShutdown
が発行する D-Bus シグナルにも精通しています。リッスンすると、シャットダウンを禁止してシグナルをリッスンするよりもコードが単純になります。のもう 1 つの利点は、システムがシャットダウンしてもデーモンが丁寧に強制終了された場合を処理できることです。SIGTERM
PrepareForShutdown
SIGTERM
SIGTERM
ただし、シャットダウン時にカーネルによって送信されるシグナルに依存することがどれほど安全かはわかりません。シャットダウンSIGTERM
時に、ディスクへの小さい (< 1 kB) 書き込みを実行するのに十分な時間があるすべてのプロセスに常に送信されますか?
私が懸念していることの 1 つは、一部のハードウェアではディスクに書き込むのに十分な時間があり、他のハードウェアではそうでない可能性があるため、テストが難しいように思われることです。信号についても同じことが言えますPrepareForShutdown
が、少なくともディスク書き込みに十分な時間を許可することは、その信号の契約の一部です。SIGTERM
私の質問は、すべてのプロセスがシャットダウン時に受け取るシグナルについても同じことが言えるかどうかです。