Запустите процесс из службы Python и сохраните его после перезапуска службы - PullRequest
0 голосов
/ 12 февраля 2019

Я создал службу Linux, используя Python.Служба может запускать / уничтожать внешние процессы, используя Popen.Но есть небольшая проблема: после перезапуска службы запущенные процессы прекратились.

Пара примеров

  • pyservice.service (Unit-file):
    [Service]
    ExecStart=/opt/pyservice/service.py
    
  • service.py:
    ...
    subprocess.Popen('server.sh')
    ...
    
  • server.sh:
    /usr/bin/java -server -jar ./Application.jar &
    

Что происходит?

Я запускаю несколько экземпляров server.sh, используя pyservice.ps -aef --forest показывает мне

python3.6 /opt/pyservice/service.py
\_ [server.sh] <defunct>
/usr/bin/java -server -jar ./Application.jar 
/usr/bin/java -server -jar ./Application.jar 

Если я убью service.py, мои Application.jar тоже будут убиты.

Что я ожидаю?

После service.pykill или pyservice рестарт server.sh будет запущен.

Что я уже пробовал?

Различные комбинации os.system, subprocess.Popen, nohup, & иих аргументы.

Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...