cronjob не может найти переменные среды определенными в .bashrc

У меня есть очень простое требование, которое я пытался искать решение, но не мог получить, любой стандарт определил решение. то, что я хочу знать, для моего вопроса ниже того, что correct решение.

Вопрос: я требуюсь выполнить cronjob (который является сценарием Python), использующий crontab.

с помощью crontab-e я добавил эту строку к своему файлу крона:

* * * * * /usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

сценарий запускается, но он использует переменные среды внутри. я получаю ошибку в файле журнала, что огибающий Вар не определяется?

где я должен определить свой ENV vras? я даже пытался определить в .bashrc но тем не менее та же ошибка. cronjob не может найти его.

что я пропускаю?

1
задан 18 April 2017 в 18:45

2 ответа

Запишите маленький сценарий mypythonscript удара, состоящий из:

#!/bin/bash
set ENVIRONMENT_VARIABLE_1=...
set ENVIRONMENT_VARIABLE_2=...
/usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1

Делают это исполняемым файлом:

chmod +x mypythonscript

В crontab заменяют строку

* * * * * /path/to/mypythonscript
1
ответ дан 7 December 2019 в 13:34

Вместо того, чтобы сохранять определения переменной в двух местах, перенесите свой вызов программы в простое bash сценарий, который получает Ваш ~/.bashrc:

#!/bin/bash
source $HOME/.bashrc
/usr/bin/python /srv/x/y/src/run.py > /tmp/listener.log 2>&1  

chmod +x сценарий, и выполненный это от Вашего crontab.

1
ответ дан 7 December 2019 в 13:34

Другие вопросы по тегам:

Похожие вопросы: