LINUX.ORG.RU
ФорумAdmin

Проблема при запуске Python через cron

 , , ,


0

1

На Ubuntu сервере python скрипт при ручном запуске выполняет перезагрузку сервера, а при запуске в кроне нет. Пробовал так:

@reboot sleep 30 && /usr/bin/python3 /root/bin/skript.py &

и без запуска в фоне

@reboot sleep 30 && /usr/bin/python3 /root/bin/skript.py

При этом при запуске в фоне после ребута сервера python процесс выглядит так:


а без амперсанда так:

450 ?        Ss     0:00 /bin/sh -c sleep 30 && /usr/bin/python3 /root/bin/skript.py

А зачем там амберсанд? Я не спец по крону, но в шелле если процесс шелла завершается, то все команды пущенные через & убиваются. Ты уверен, что у тебя там такого не происходит?

Aswed ★★★★★
()
Ответ на: комментарий от Aswed

не уверен, но я пробовал и с ним и без него.

zorinquen
() автор топика
Ответ на: комментарий от zorinquen

в skript.log записалось такое

sh: 1: reboot: not found

запускаю через крон таким образом

* * * * * /root/bin/skript.log >> ~/skript.log 2>&1

При этом при запуске вручную скрипт отрабатывает ребут сервера нормально.

zorinquen
() автор топика
Последнее исправление: zorinquen (всего исправлений: 1)
Ответ на: комментарий от zorinquen

Потому что PATH, с которым запускается скрипт, не содержит reboot

Перепиши скрипт с полными путями до исполняемых файлов, установи PATH в кронтабе или импортируй его внутри скрипта.

anonymous
()
Ответ на: комментарий от anonymous

так в скрипте просто используется

os.system("reboot")

она то вроде ж системная и ей PATH не нужен.

zorinquen
() автор топика
Ответ на: комментарий от anonymous

да, ты был прав! прописал PATH и скрипт по крону отработал как надо - с ребутом. Спасибки!

zorinquen
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.