首页 > 后端开发 > Golang > Systemd 服务停止后如何保持子进程运行?

Systemd 服务停止后如何保持子进程运行?

DDD
发布: 2024-12-25 16:06:19
原创
246 人浏览过

How Can I Keep Child Processes Running After a Systemd Service Stops?

Systemd:分离子进程

从终端启动长时间运行的进程时,您可能希望子进程持续存在,即使主进程重新启动或终止。虽然手动执行是可行的,但当将主进程作为 systemd 服务运行时就会出现问题。

在 systemd 中,默认的子进程终止方法是通过 control-group,这会导致所有子进程都被终止父进程终止时。为了防止这种情况,您可以在服务配置中指定 KillMode=process。

以下是给定示例的实现方法:

[Unit]
Description=ExecTest

[Service]                        
Type=simple
ExecStart=/home/snowm/src/exectest/exectest
User=snowm
KillMode=process

[Install]
WantedBy=multi-user.target
登录后复制

通过设置 KillMode=process,您指示 systemd结束服务时仅终止主进程。这允许子进程即使在父进程停止后也可以继续运行。

请注意,此方法仅影响在主进程执行期间创建的子进程。当主进程结束时,之前创建的进程仍然会被终止。

以上是Systemd 服务停止后如何保持子进程运行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板