首页 >后端开发 >Golang >如何防止Systemd在主进程退出时杀死子进程?

如何防止Systemd在主进程退出时杀死子进程?

Patricia Arquette
Patricia Arquette原创
2024-12-24 19:17:10735浏览

How to Prevent Systemd from Killing Child Processes When the Main Process Exits?

从主 Systemd 进程中分离子进程

从主进程生成子进程时,确保子进程即使在主进程处于活动状态时也保持活动状态至关重要终止。在管理长时间运行的后台任务时,这种行为尤其理想。

在您的特定场景中,您希望在从 systemd 服务管理器启动时将子进程与主进程 (exectest) 分离。但是,您发现子进程与主进程一起终止。

解决方案在于修改 systemd 配置文件(/etc/systemd/system/exectest.service)以包含以下行:

KillMode=process

默认情况下,systemd 应用“控制组”终止模式,该模式在终止时终止主进程控制组内的所有子进程。通过将其更改为“process”,您可以指示 systemd 仅终止主进程本身,而使子进程保持不变。

此修改可确保子进程继续执行并在主进程终止或重新启动后继续存在进程,即使它是从 systemd 启动的。

以上是如何防止Systemd在主进程退出时杀死子进程?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn