Запуск сценария node.js на хосте сновидений с помощью cron или shell_exec()
Я хотел бы запускать скрипт узла на моем общем сервере в Dreamhost один раз в x минут. Я создал задачу cron для выполнения:
cd /home/path && node app.js
Но, похоже, это не сработает. Я также пытался вставить то же утверждение в команду shell_exec в php, но скрипт все еще не выполняется (возможно, не полностью). Когда я запускаю эту команду вручную, все работает нормально.
Единственное, о чем я могу думать, это то, что сценарию нужно около 15 секунд, что может быть слишком длинным?
Для тех, кто ищет этот ответ: запуск приложения nodejs на общем сервере Dreamhost кажется ограниченным (например, здесь, но также можно найти на страницах поддержки DreamHost)
1 ответ
Сценарий долго не должен быть проблемой.
Было бы неплохо, если бы вы покопались в логах и выяснили, в чем ошибка, моя ставка - это само собой разумеется.
Между тем, я подозреваю, что причина в звонке node
без использования полного пути. Cronjob скрипты не имеют PATH
настроен, в результате вызова node
очень вероятно вернется unknown command
, Решение будет: напишите в терминале which node
чтобы увидеть полный путь, а затем использовать его вместо.
В результате ваш скрипт cronjob будет выглядеть примерно так:
cd /home/path && /usr/local/bin/node app.js
Предоставленный узел находится в /usr/local/bin
Чтобы просмотреть ошибки в команде запуска cronjob: grep CRON /var/log/syslog