我使用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.system
,subprocess.Popen
,nohup
,&
及其参数的不同组合。
我做错了什么?