我需要在父進程終止后保持子進程運行。在我的 Ubuntu 18(系統 D)上,我創建了一個服務來將我的java應用程序作為服務運行。為了啟動它,我使用:systemctl start my-service這是my-service服務單位的定義:[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在這個my-servicejava應用程序中,我啟動了一個子進程(另一個java應用程序),并且我需要在停止后保持它運行my-service。問題是,當我運行時,systemctl stop my-service子進程也被終止。我嘗試使用nohup命令啟動子進程,但沒有成功,我的java代碼:Runtime.getRuntime().exec("houp java -jar child.jar");有人可以提供如何解決這個問題的想法嗎?
1 回答

慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
我剛剛更改了我的服務描述單元,添加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
添加回答
舉報
0/150
提交
取消