gpt4 book ai didi

java - 防止Linux子进程在父进程终止时终止

转载 作者:行者123 更新时间:2023-12-02 09:24:24 25 4
gpt4 key购买 nike

我需要在父进程终止后保持子进程运行。

在我的 Ubuntu 18(系统 D)上,我创建了一个服务来将我的 java 应用程序作为服务运行。

要启动它,我使用:

systemctl start my-service

这是my-service服务单元定义:

[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/my-service.jar
RestartForceExitStatus=2

[Install]
WantedBy=multi-user.target

在这个my-service java应用程序中,我启动了一个子进程(另一个java应用程序),并且我需要在之后保持它运行my-service 停止。

问题是,当我运行 systemctl stop my-service 时,子进程也被终止

我尝试使用nohup命令启动子进程,但没有成功,我的java代码:

Runtime.getRuntime().exec("houp java -jar child.jar");

有人可以提供如何解决这个问题的想法吗?

最佳答案

我找到了解决方案here .

我刚刚更改了我的服务描述单元,添加了 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

关于java - 防止Linux子进程在父进程终止时终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58440368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com