Рейтинг:0

Сценарий Bash в Cron не запускает скрипт Python в Ubuntu 20.04.2 LTS

флаг cl

У меня есть сервер Ubuntu 20.04.2 LTS, на котором я запускаю несколько скриптов Python.

Я создал cronjob для запуска скрипта bash, чтобы проверить, работает ли мой скрипт python:

#!/бин/ш
#!/бин/python2.7


СЕРВИС="start_server.py"
если ps -ef | grep "$СЕРВИС" | grep -v grep >/dev/null
тогда
    echo "start_server.py запущен" >> /home/ubuntu/mislaka/script_log.log
еще
        python2.7 /home/ubuntu/mislaka/start_server.py &
    echo "start_server.py остановлен" >> /home/ubuntu/mislaka/script_log.log
фи

Это конфигурация cronjob:

* * * * * /home/ubuntu/mislaka/check_process.sh

При проверке файла журнала я вижу, что он добавляет эхо-команды в файл, но не запускает скрипт python.

Если я запускаю свой скрипт вне cronjob, он работает, как и ожидалось.

Будем признательны за любую помощь.

Спасибо!

Рейтинг:0
флаг cl

Выяснил, в чем моя проблема. Вместо того, чтобы написать свою команду под оператором else в одну строку, я написал ее в две:

echo "start_server.py остановлен" >> /home/ubuntu/mislaka/script_log.log && python2.7 start_server.py &

Это исправило мою проблему.

bac0n avatar
флаг cn
Это маловероятно, единственное, что изменилось, это порядок выполнения строки, я подозреваю, что вы пропустили путь к `start_server.py`
Рейтинг:0
флаг ng

Между оболочками bash и sh есть некоторые различия. Если вы используете bash, вы должны использовать:

#!/бин/баш

Ответить или комментировать

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