【发布时间】:2015-05-10 18:44:51
【问题描述】:
我的 /Library/LaunchDemons 中有以下内容为 com.me.filechecker.plist
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!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>File Checker</string>
<key>StartInterval</key>
<integer>10</integer>
<key>Program</key>
<string>/usr/bin/ruby "/Users/me/projects/filechecker/filechecker.rb"</string>
</dict>
</plist>
我也跑了
sudo chown root /Library/LaunchDaemons/com.me.filechecker.plist
和
sudo chmod a+x /Library/LaunchDaemons/com.me.filechecker.plist
和
sudo launchctl load -w /Library/LaunchDaemons/com.me.filechecker.plist
它似乎没有运行(或者如果它正在运行,它什么也没做)。我怎样才能调试它并让它工作?
【问题讨论】:
-
您为脚本设置的
permissions是什么,您是否也尝试过将其作为cronjob运行?还有一个想法——考虑也发布ruby script;这可能是脚本中的问题。 -
cronjobs 是否以 root 身份运行?如果是,我该怎么做才能将它添加为 cronjob,并且每次启动计算机时它会自动启动吗?权限是 a+x chmodded。
-
文件有权限... -rwxr-xr-x@ 1 root wheel 458 May 10 11:36 com.me.filechecker.plist (IDK什么是“wheel”)
-
对于
cronjobs或daemons,这些权限通常应该没问题。cronjobs可以根据用户运行任务的需要使用权限,当你启动计算机时它也会自动运行,所以它相当灵活。当您从Terminal.app执行脚本时,您的脚本是否正常运行,它有什么作用?正如我之前提到的,您可能会考虑发布脚本,以便我们可以看到它到底在做什么。也可以在终端中尝试这个命令:ps aux | grep filechecker- 你看到列出了什么吗? -
wheel是root用户所属的特殊用户组的名称 - 请参阅superuser.com/a/191969/139307。