Назад | Перейти на главную страницу

Crontab не может запустить программу, которая вызывает файл учетных данных

Вновь созданное задание crontab завершается ошибкой, потому что программа не может прочитать файл .json, содержащий учетные данные в том же каталоге. Оба файла содержатся в /home/deploy/app/ папка. Crontab выполняет /home/deploy/app/app что нужно прочитать home/deploy/app/config.json выполнить. Программа отлично работает deploy user, но не работает при запуске crontab.

Я уверен, что это причина, по которой программа терпит неудачу, поскольку я направил задание crontab для записи его вывода, и я вижу, что программа не может прочитать config.json файл. В app имеет следующие разрешения -rwxr-xr-x 1 deploy deploy и config.json имеет -rw-rw-r-- 1 deploy deploy.

Запись в crontab:

10 0,6,9,12,15,18 * * * /home/deploy/gocode/bin/BuoyBot > /home/deploy/buoybot.log 2>&1

Журнал cron записывает ошибку приложения, которая указывает, что оно не может загрузить config.json файл хранится в той же папке, что и приложение.

error loading config.json: invalid argument

Эта ошибка не возникает, если программа запускается вручную из /home/deploy/gocode/bin/ папка.

ОБНОВЛЕНИЕ: решение, предложенное ниже, заключалось в ссылке на полный путь к config.json файл в приложении (/home/user/app/config.json), а не ссылку на локальный каталог (config.json).

Не видя кода, я предполагаю, что вы не указываете полный путь к своему файлу данных, когда пытаетесь его открыть.

Можете ли вы попробовать запустить cron как пользовательское развертывание следующим образом:

10 0,6,9,12,15,18 * * * deploy /home/deploy/gocode/bin/BuoyBot > /home/deploy/buoybot.log 2>&1

В качестве альтернативы вы также можете попробовать следующее:

10 0,6,9,12,15,18 * * * deploy cd /home/deploy/gocode/bin/ &&  ./BuoyBot > /home/deploy/buoybot.log 2>&1

Надеюсь, поможет.