我正在尝试在OS X 10.10中安装一个自制的LaunchDaemon,但是,我遇到了一些奇怪的错误,无法找到解决方案..希望有人知道答案,我正在谷歌我的屁股为这个..
基本上,我有一个简单的程序(用C ++编写),安装在/ Library / Application Support / myfolder / myprogram中。我按如下方式设置了权限:
chown root /Application Support/myfolder/myprogram
chmod 644 /Application Support/myfolder/myprogram
我正确安装了LaunchDaemons文件夹的.plist(我很确定)。
现在当我启动计算机时,我在我的日志(循环)中找到了这个:
taskgated: no signature for pid=xxx (cannot make code: UNIX[no such process])
com.apple.xpc.launchd: (my.launchdaemons.plist) Service exited duo to signal: Killed: 9
com.apple.xpc.launchd: (my.launchdaemons.plist) Service ran only for 0 seconds. Pushing respawn out by 10 seconds.
好吧,这似乎是taskgated守护进程认为我的程序是“不安全”,从而阻止它执行。猜测这是基于签名检查,我没有签署我的程序..我不想这样做。
所以我尝试通过修改taskgated.plist来禁用该检查,以便在启动taskgated时添加-p参数,但是这样做并不会产生相同的错误。
然后我尝试通过使用以下方式禁用签名检查系统(我知道这是一个很大的安全风险,但这仅用于测试目的):
sudo spctl --master-disable
但是猜猜是:仍然得到相同的错误(即使重启后)。 简单地杀死taskgated也没有帮助(你无法启动任何程序,除了使用那些在杀死taskgated之前打开的程序)。
那么,是否有一些方法可以绕过这个烦人的签名检查或其他方式来实际运行我的程序?
在Mac上我编译了程序(它不是我试图安装它的同一台计算机)它运行正常。我的意思是,我可以从终端运行我的程序,如:
bash$> ./myprogram
<output>
bash$>
但是在计算机上我想安装它我得到这个:
bash$> ./myprogram
Killed: 9
bash$>
刚刚通过USB Stick将程序从一台计算机移到另一台计算机......我无法理解......:/