启动以正确读取程序参数
我有一个启动的脚本,其中我尝试运行的命令出错(显然这不是一个字,现在是),抱怨使用不当。 我得到的特定错误是转储到系统日志中的命令用法文本。据此,我推断plist中的其他信息(命令的路径,时间等)已正确解析,而不是命令的选项。 使用命令后,我有最后一行: 18/11/2013 09:30:00.101 com.apple.launchd.peruser.501: (fake.lable.seti[33833]) Exited with code: 1 但这仅表示“我退出并出错”。 我知道launchd会将命令从其选项中分离出来,并且在手册页中向您介绍了ProgramArguments:“ ...请注意:许多人对此键感到困惑。请非常仔细地阅读execvp(3)!。” 好吧,我读了execvp(3),但我也不是明智的,所以我想问你很多。 通常,从终端运行命令如下所示: /Library/Application\ Support/BOINC\ Data/boinccmd --host localhost --passwd gobbledygook --project http://setiathome.berkeley.edu/ update 这可以治疗。 这就是我在LaunchAgent plist的Program / ProgramArguments部分中将其拆分的方式: <key>Program</key> <string>/Library/Application Support/BOINC Data/boinccmd</string> <key>ProgramArguments</key> <array> <string>--host localhost</string> <string>--passwd gobbledygook</string> <string>--project http://setiathome.berkeley.edu/ update</string> </array> (为记录起见,我本来拥有boinccmd的路径\\逃逸了,但这不起作用,为您启动了路径中的转义空格) 我试着进一步分解参数: <key>Program</key> <string>/Library/Application Support/BOINC …