我一直在尝试运行crontab命令,但由于某种原因它没有运行。该命令应该发送推送通知。
我的sudo crontab -e看起来像这样:
0 0 * * 0 /home/[user]/resetWeeklyLeaderboard
* * * * * /home/[user]/pushDelivery
我在上面的位置有一个名为pushDelivery的文件,其中包含以下内容:
/usr/bin/flock -n /home/[user]/PushChatServer/push/lockfile usr/bin/php /home/[user]/PushChatServer/push/push.php development
我还通过chmod + x pushDelivery制作了pushDelivery可执行文件。此代码适用于我的resetWeeklyLeaderboard文件,但不会调用pushDelivery文件。
如果我运行
,它会起作用 /home/[user]/pushDelivery
如果我运行
,它会起作用 /usr/bin/flock -n /home/[user]/PushChatServer/push/lockfile usr/bin/php /home/[user]/PushChatServer/push/push.php development
但是如果在crontab中我做了
* * * * * /home/[user]/pushDelivery
或
* * * * * /usr/bin/flock -n /home/[user]/PushChatServer/push/lockfile usr/bin/php /home/[user]/PushChatServer/push/push.php development
它不起作用。请帮我。谢谢!
更新:
它仍然不起作用,但我尝试了更多的东西。我尝试在crontab中反转顺序
* * * * * /home/[user]/pushDelivery
0 0 * * 0 /home/[user]/resetWeeklyLeaderboard
它不起作用。我也试过让我的resetWeeklyLeaderboard代码小心运行
* * * * * /home/[user]/pushDelivery
* * * * * /home/[user]/resetWeeklyLeaderboard
这适用于我的resetWeeklyLeaderboard代码,但不适用于我的pushDelivery代码。这对我来说意味着我的pushDelivery代码中存在导致问题的原因。但是我从命令行运行/ home / [user] / pushDelivery并且它可以工作。可能导致这个问题的原因是什么?
答案 0 :(得分:0)
我不知道为什么没有跑,但是在那个时候发生了同样的事情
* * * * * / home / [user] / pushDelivery
试试这个
* / 1 * * * * / home / [user] / pushDelivery
它以这种方式为我工作......(每一分钟都有任务)
答案 1 :(得分:0)
我解决了这个问题。在我的pushDelivery文件中,我应该写:
/usr/bin/flock -n /home/[user]/PushChatServer/push/lockfile /usr/bin/php /home/[user]/PushChatServer/push/push.php development
而我写的是:
/usr/bin/flock -n /home/[user]/PushChatServer/push/lockfile usr/bin/php /home/[user]/PushChatServer/push/push.php development
" /"在" usr / bin / php"之前完全不同。不知何故,斜杠将允许它在crontab之外工作,但在crontab中运行时会失败。我不明白为什么,但这是正确的解决方案。