这是我的launchd播放列表
<?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>Label</key>
<string>com.blockjunk.server.plist</string>
<key>ProgramArguments</key>
<array>
<string>/Users/jeff/scripts/nojunkweb/startserver.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
这是调用
的startserver.sh#!/bin/bash
echo "Attempting to start node server"
/usr/local/bin/node /Users/jeff/scripts/nojunkweb/server.js "http://dynamic.xkcd.com/random/comic/" "https://www.shortcutfoo.com/app/drills" "https://www.duolingo.com" "http://stackoverflow.com"
launchctl list
显示com.blockjunk.server.plist的错误代码8 - 是否有人知道状态代码8的含义或我可能做错了什么?
这是startserver.sh的权限 -rwxr-xr-x 1 jeff staff 248B Feb 6 10:16 startserver.sh
plist位于〜/ Library / LaunchAgents /
中答案 0 :(得分:1)
错误代码8:执行格式错误。有人要求执行一个文件,虽然它具有适当的权限,但不是可执行文件所需的格式。
从Terminal.app手动启动作业。究竟是什么错误信息?
1)由于奇怪的原因,作业无法执行(3):8 :launchd无法执行ProgramArguments
中指定的作业。鉴于你指定了一个合适的爆炸线,这是不可能的。
2)退出代码:8 :调用的脚本launchd返回此错误。尝试手动运行脚本。它有效吗?
了解错误消息的完全非常重要。否则,无法确定错误代码8是什么,因为我们不知道哪个进程报告了它。 launchd报告标准错误代码,但一般不需要软件。
要找出标准错误代码的含义,请输入以下命令:
perl -E 'say $!=shift' 8
只需将8
替换为您要查找的代码。
答案 1 :(得分:0)
我需要将plist
放入/Library/LaunchDeamons
以root
运行,因为node
进程需要root access
。