У меня есть скрипт Python, который я запускаю как выскочку Ubuntu. Я запускаю его из оболочки с помощью:
sudo service my-service-name start
В коде Python для самой службы в некоторых случаях мне нужно перезапустить службу. Вот как я это делаю:
import subprocess
import shlex
cmd = 'sudo service my-service-name restart'
subprocess.check_output(shlex.split(cmd), stderr=subprocess.STDOUT)
Если я запускаю cmd из оболочки, я могу успешно перезапустить свою выскочку. Если я запускаю его из самого задания, задание останавливается, но больше никогда не запускается.
Есть ли какая-то проблема с выскочками, начинающими работу таким образом? Если да, то есть ли другой способ заставить работу выскочки перезапуститься?
Причина, по которой я перезапускаю задание, заключается в том, что я обновил базовый код Python на диске и хочу перезапустить задание, чтобы оно запускало новый код.