リモート データベースに起動/シャットダウン時間を記録するために、LaunchDaemon として実行している小さな python スクリプトを作成しました。スクリプトが起動すると、起動時間を記録し、一時停止して SIGTERM をキャッチしてシャットダウン時間を記録するのを待ちます。ログイン/ログアウト時の LaunchAgent として、ほぼ同じワークフローが使用されています。
しかし、Apple の突然の終了メカニズムが事態を悪化させているようです。マシンがシャットダウンまたは再起動されたときに、が launchdaemons と launchagents にlaunchd
のみ信号を送信しているように見えますが、これは処理できません。SIGKILL
私は技術的に間違っているかもしれませんが、それは本質的に私が経験していることです..
launchctl を使用してデーモンを手動でロード/アンロードすると、SIGTERM
ハンドラーがトリガーされます。ただし、実際のシステム シャットダウンが発生した場合、同じコードはトリガーされません。
を防ぐ方法についての推奨事項はありSIGKILL
ますか?