我需要在父進(jìn)程終止后保持子進(jìn)程運(yùn)行。在我的 Ubuntu 18(系統(tǒng) D)上,我創(chuàng)建了一個(gè)服務(wù)來將我的java應(yīng)用程序作為服務(wù)運(yùn)行。為了啟動(dòng)它,我使用:systemctl start my-service這是my-service服務(wù)單位的定義:[Unit]Description=Java Linux ServiceAfter=syslog.target[Service]User=rootWorkingDirectory=/rootExecStart=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar /root/my-service.jarRestartForceExitStatus=2[Install]WantedBy=multi-user.target在這個(gè)my-servicejava應(yīng)用程序中,我啟動(dòng)了一個(gè)子進(jìn)程(另一個(gè)java應(yīng)用程序),并且我需要在停止后保持它運(yùn)行my-service。問題是,當(dāng)我運(yùn)行時(shí),systemctl stop my-service子進(jìn)程也被終止。我嘗試使用nohup命令啟動(dòng)子進(jìn)程,但沒有成功,我的java代碼:Runtime.getRuntime().exec("houp java -jar child.jar");有人可以提供如何解決這個(gè)問題的想法嗎?
1 回答

慕婉清6462132
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
我剛剛更改了我的服務(wù)描述單元,添加KillMode=process
如下:
[Unit]
Description=Java Linux Service
After=syslog.target
[Service]
User=root
WorkingDirectory=/root
ExecStart=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar /root/linux-service.jar
RestartForceExitStatus=2
KillMode=process
[Install]
WantedBy=multi-user.target
添加回答
舉報(bào)
0/150
提交
取消