为什么守护进程会随机停止?

时间:2010-09-06 12:09:49

标签: objective-c c cocoa macos daemon

这与previous, yet so far unsuccessful question of mine有关。我有一个守护进程放在LaunchAgents文件夹(在Mac上),它应该在后台永久运行,但几天后它就会停止,没有明显的原因。我不知道为什么以及我的问题:

守护程序可能会随机停止的原因是什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

守护进程只是一个持久的(分叉)过程。守护进程崩溃的原因与任何其他程序崩溃的原因相同:

  • 尝试读取或写入内存 没有分配给阅读或 由该申请书撰写 (分段错误)或x86特定 (一般保护错误)
  • 尝试执行特权或 无效指示
  • 尝试执行I / O操作 在它所做的硬件设备上 没有访问权限
  • 将无效参数传递给系统 呼叫
  • 尝试访问其他系统 应用程序的资源 没有访问权限 (总线错误)
  • 尝试执行机器 参数不好的说明 (取决于CPU架构): 除以零,对变形的操作 或NaN值,内存访问 未对齐的地址等。

答案 1 :(得分:1)

由于它是一个LaunchAgent,它作为登录会话的一部分运行,因此如果你注销就会被杀死。

另一方面,如果它在您注销之前死亡,并且您无法找到/修复导致其崩溃/退出的任何内容,或者您​​可以通过添加

告诉launchd自动重启它
<key>KeepAlive</key>
</true>

到它的.plist