gpt4 book ai didi

python - LaunchDaemon 处理系统关闭 - 没有 SIGTERM?

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:54 25 4
gpt4 key购买 nike

我编写了一个小的 Python 脚本,作为 LaunchDaemon 运行,用于将启动/关闭时间记录到远程数据库。当脚本启动时,它会记录启动时间,然后暂停并等待捕获 SIGTERM 以记录关闭时间。几乎相同的工作流被用作登录/注销时间的 LaunchAgent。

但是,Apple 的突然终止机制似乎给事情带来了麻烦。看起来当机器关闭或重新启动时,launchd 只是向 launchdaemons 和 launchagents 发送一个 SIGKILL 信号,这是无法处理的。我在技术细节上可能是错误的,但这基本上就是我正在经历的..

使用 launchctl 手动加载/卸载守护进程会触发 SIGTERM 处理程序。但是,当真正的系统关闭发生时,不会触发相同的代码。

有没有人对如何防止 SIGKILL 有建议?

最佳答案

如果我正在阅读 this是的,除非你有 <key>EnableTransactions</key><true/>,否则它不应该在守护进程上使用突然终止。在启动的 plist 中。但是文档有点含糊,所以我也尝试添加 <key>EnableTransactions</key><false/>到 plist,或者如果这不起作用,请从您的程序调用 vproc_transaction_begin(我假设您可以从 python 调用它,但我不知道其机制)。

关于python - LaunchDaemon 处理系统关闭 - 没有 SIGTERM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8248907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com