2014-10-09 3 views
0

Я пытался запустить команду crontab, но по какой-то причине она не работает. Предполагается, что команда отправит push-уведомления.crontab not running command

Мой Sudo кронтаб -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 

Я также сделал pushDelivery исполняемым, выполнив chmod + x 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 

Однако если в кронтаб я

* * * * * /home/[user]/pushDelivery 

или

* * * * * /usr/bin/flock -n /home/[user]/PushChatServer/push/lockfile usr/bin/php /home/[user]/PushChatServer/push/push.php development 

не работает. Пожалуйста, помогите мне. Спасибо!

UPDATE:

Он по-прежнему не работает, но я пытался больше вещей. Я попытался изменить порядок в кронтабе

* * * * * /home/[user]/pushDelivery 
0 0 * * 0 /home/[user]/resetWeeklyLeaderboard 

не работает. Я также попытался сделать мой resetWeeklyLeaderboard код запуска ежеминутно

* * * * * /home/[user]/pushDelivery 
* * * * * /home/[user]/resetWeeklyLeaderboard 

и что работает для моего resetWeeklyLeaderboard кода, но не для моего pushDelivery кода. Это подразумевает, что это что-то из моего кода pushDelivery, вызывающего проблему. Однако я запускаю/home/[user]/pushDelivery из командной строки и работает. Что может вызвать эту проблему?

+0

Что происходит, когда вы запускаете 'env -i/home/[user]/pushDelivery'? – yaccz

+0

Я получаю ошибку '/ usr/bin/flock: usr/bin/php: Нет такого файла или каталога' Когда я запускаю 'env -i/home/miguel/resetWeeklyLeaderboard', я не получаю никаких ошибок. – user2012741

+0

Nevermind. Я получаю '/ usr/bin/flock: usr/bin/php: нет такого файла или каталога', когда запускаю' env -i/home/[user]/pushDelivery' из каталога/home/[user]. Если я cd ../ вверху и бегу оттуда, ошибки не будет. Любопытно, что если я запустил 'env -i/home/miguel/resetWeeklyLeaderboard', я стал [trueuser], где, когда я запускаю' env -i/home/miguel/pushDelivery', я остаюсь как [пользователь]. – user2012741

ответ

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/бен/PHP" делает все различия. Каким-то образом только эта косая черта позволит ему работать вне crontab, но не сможет ее запустить во время crontab. Я не понимаю, почему, но это правильное решение.

0

я не знаю, почему не работает, но то же самое происходит со мной, прежде чем в то время InstEd делать
* * * * */дом/[пользователь]/pushDelivery
попробовать этот
*/1 * * * */home/[пользователь]/pushDelivery
он работал для меня таким образом ... (обе задачи выполняются каждую минуту)

+0

Я просто попробовал это, но это не сработало для меня, к сожалению. :( – user2012741