我正在尝试通过 launchd 运行一个脚本,但加载后状态一直为 127。我检查了 plist 和脚本的所有权、权限和绝对路径等。我在装有 macos 10.13 的 Mac 上运行它。这是 plist:
<dict>
<key>Label</key>
<string>com.parkridge.UrlHistory</string>
<key>StartInterval</key>
<integer>21600</integer>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>/Users/Shared/Resources/Logs.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>StandardErrorPath</key>
<string>/dev/null</string>
</dict>
我还可以手动运行该脚本,并且它可以正常工作。
答案1
不幸的是,127 可以表示很多不同的含义,但通常归结为路径和权限。该脚本应归 root:wheel 所有,并设置为 644。
至于路径,launchd 的 PATH 设置与您的不同,因此最简单的解决方案是将所有可执行文件的路径硬编码到脚本中。