OSX已启动 - 后台会话中的运行脚本忽略StartInterval

时间:2012-08-08 15:06:57

标签: php macos intervals launchd

社区!

我试图在OSX 10.7.4上每5分钟执行一个简单的脚本。它应该运行,无论用户是否登录到机器(也就是在后台会话中)

因此我在/System/Library/LaunchDaemons/创建了我的com.me.script.plist 并通过以下方式加载:launchctl -S background ./com.me.script.plist 并通过以下方式启动:launchchctl start com.me.script

第一次运行正常。但是在我设定的300秒间隔之后它永远不会再次运行!

你们有什么建议可以吗?如果我在Aqua Session中运行它会完美运行,但是,这意味着它只会在用户登录时运行。但是,我真的需要它在此之前开始运行......并继续这样做如果用户登录/注销或其他用户登录/注销,则无关紧要。

这是我的plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>LimitLoadToSessionType</key>
        <string>Background</string>
        <key>Label</key>
        <string>com.me.script</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/bin/php</string>
            <string>/Sites/script/notifier.php</string>
        </array>
        <key>StartInterval</key>
        <integer>900</integer>
    </dict>
</plist>

2 个答案:

答案 0 :(得分:0)

我要说的问题在于:

<string>/Sites/script/notifier.php</string>

你的意思是写下面的内容吗?

<string>/Users/username/Sites/script/notifier.php</string>

使用/启动路径意味着路径从驱动器的根目录开始,默认情况下OSX在根目录中没有/Sites目录。

答案 1 :(得分:0)

我发现自己的错误......如果我希望它每隔5分钟运行一次,StartInterval应该是300而不是900。抱歉,愚蠢。