как запустить сборку npm из скрипта bash, запущенного cronjob?

как запустить сборку npm из скрипта bash, запущенного cronjob?

У меня есть очень простой bash-скрипт (run-build.sh):

cd /var/www/project
npm run build

Этот скрипт работает нормально, когда я запускаю его из командной строки, но я хочу запускать его каждые 30 минут с помощью задания cron:

*/30 * * * * /var/www/project/run-build.sh >> /var/www/test.log 2>&1

Что по какой-то причине не работает. Я пробовал разные другие подходы, например, запуск задания cron от имени пользователя root или добавление пути к узлу как части задания cron. Однако мне пока не удалось найти решение, поэтому я сейчас пишу здесь.

У кого-нибудь есть идеи, как заставить это задание cron работать?

решение1

Я обновил задание cron на:

* */12 * * * sudo -u user /var/www/project/run-build.sh >> /var/www/test.log 2>&1

и теперь это работает. Я уверен, что пробовал это раньше, но, должно быть, я пробовал что-то другое.

решение2

У меня была похожая проблема. В моем случае проблема была в том, что у моего скрипта .sh не было прав на выполнение.

Проверьте, имеет ли файл скрипта разрешение на выполнение ( xфлаг) с помощью ll. Если нет, то что-то вроде:

chmod 744 file

должен позволить вашему пользователю выполнить его без прав root.

Связанный контент