【发布时间】:2013-03-11 12:42:18
【问题描述】:
我有一个需要以 root 身份运行并由 launchd 启动的守护进程。这个守护进程需要存储一些用户提供的凭据,所以我让它使用 SecKeychainOpen 和类似函数将它们写入系统钥匙串。
我很确定,因为它以 root 身份运行,所以我必须使用系统钥匙串(因为使用用户的登录钥匙串是不正确的,因为它不能以普通用户身份运行)。
我的安装程序在安装结束时使用launchctl 将其加载到launchd 中。问题是它实际上直到重新启动后才开始。我在 plist 中将 OnLOad 设置为 true,但似乎在使用系统钥匙串时我需要重新启动它才能工作。
我想知道是否有人知道解决此问题的方法,因为如果不需要重新启动,这将是更好的用户体验。所以要明确一点,我可以使用 launchd 以编程方式从守护进程访问系统钥匙串而无需重新启动吗?
感谢您的任何建议或想法。
【问题讨论】: