Как запустить команду exec () PHP, используя cron, но не запускать 2 из них? - PullRequest
1 голос
/ 15 декабря 2011

Я просто не могу понять это.У меня есть скрипт, который получает данные из Facebook API, и этот скрипт работает постоянно.(используя set_time_limit (0);)

Однако иногда API Facebook выдает ошибки и останавливает сценарий.Поэтому я хотел бы, чтобы каждые 5 минут выполнялось задание cron, чтобы проверить, запущен ли сценарий и, если нет, запустить его снова.

Я пробовал несколько вещей, но, похоже, я не могу запуститькоманда exec () из задания cron из-за разных прав пользователя или что-то в этом роде?Как бы вы, ребята, сделали это?

Я использую CentOS и PHP 5.3 +

Ответы [ 3 ]

1 голос
/ 15 декабря 2011

Настройте cron под другим пользователем (скажем, root), что позволит обойти любые проблемы с правами. Тем не менее, PeeHaa делает хорошее замечание: если это скрипт cron, то нет смысла использовать exec, поскольку задача exec состоит в том, чтобы отправлять команды в ОС ... эти команды можно запускать непосредственно из crontab, а не выполнять cron файл php.

0 голосов
/ 15 декабря 2011

Если этот процесс выполняется очень часто, запустите его в бесконечном цикле и просто переведите его в спящий режим. Нет необходимости в crontabs.

while(true) {

   //magical code stuff

   sleep(60);

}
0 голосов
/ 15 декабря 2011

Возможно, вы захотите заняться созданием демона, который лучше подходит для непрерывного запуска сценария. Вы можете создать его, используя PHP с этим пакетом PEAR System_Daemon

...