我有 OSX 代理,它应该从放置在项目中的 p12 文件中读取数据。Security.framework 中有一个功能 SecPKCS12Import 可以做到这一点。问题是,如果我在安装到适当的文件夹后立即在 root 下运行代理,则以下函数不会返回证书的数据(&items 参数),而是返回状态错误“0”。
sudo launchctl load com.myagent.agent.plist
但是在 OSX 重新启动后,代理在 root 下启动并且工作正常。
如果在用户权限下运行代理,即使没有 OSX 重新启动它也能正常工作。
这是一个 plist 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UserName</key>
<string>root</string>
<key>StandardErrorPath</key>
<string>/usr/local/myagent/agent.log</string>
<key>StandardOutPath</key>
<string>/usr/local/myagent/agent.log</string>
<key>Label</key>
<string>com.myagent.agent</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/agent.app/Contents/MacOS/agent</string>
</array>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
我使用 OSX 10.8
如何解决上述问题?