OsX Crontab 无效

OsX Crontab 无效

我正在动态地将 cron 任务附加到用户 crontab

任务似乎越来越多,crontab -e如下所示:

*/10 * * * * /bin/sh /Users/john/Kiosk/app/content/update.sh
@reboot /usr/bin/open /Users/john/Kiosk/startup.command

问题是它似乎没有起到任何效果。

startup.command的内容:

cd /Users/john/Kiosk/app && /usr/bin/python -m SimpleHTTPServer &
sleep 5 && open http://localhost:8000

我错在什么地方?

答案1

不要使用相对路径,而要使用完整路径。二进制文件也一样。

然后你的线路应该是

*/10 * * * * /usr/bin/sh /home/<username>/Kiosk/app/content/update.sh
@reboot open /home/<username>/Kiosk/startup.command

答案2

取消 open 命令就可以了

@reboot yourscript.command

答案3

默认路径是/usr/bin:/bin,波浪号在用户 crontab 中起作用,因此这应该可以工作:

*/10 * * * * bash ~/Kiosk/app/content/update.sh

您是否尝试过update.sh用类似 say 命令的东西来替换它并进行测试?

@reboot重新启动时对我有用,但注销并重新登录时无效。@reboot open /test.txt没用,但* * * * * open /test.txt确实有用。

您还可以像这样保存 plist ~/Library/LaunchAgents/simplehttpserver.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>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>simplehttpserver</string>
    <key>ProgramArguments</key>
    <array>
        <string>python</string>
        <string>-m</string>
        <string>SimpleHTTPServer</string>
        <string>8000</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>WorkingDirectory</key>
    <string>/Users/john/Kiosk/app</string>
</dict>
</plist>

可以通过launchctl load ~/Library/LaunchAgents/simplehttpserver.plist或注销并重新登录来加载。

相关内容