从Python服务运行进程,并在服务重启后保持活动状态

时间:2019-02-12 12:28:31

标签: python linux

我使用Python创建了Linux服务。该服务可以使用Popen运行/杀死外部进程。 但是有一个小问题:服务重启后,运行的进程死亡。

几个样本

  • pyservice.service(单位文件):
    [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.py被杀死或pyservice重新启动之后,server.sh将开始运行。

我已经尝试了什么?

os.systemsubprocess.Popennohup&及其参数的不同组合。

我做错了什么?

0 个答案:

没有答案