从主进程生成子进程时,确保子进程即使在主进程处于活动状态时也保持活动状态至关重要终止。在管理长时间运行的后台任务时,这种行为尤其理想。
在您的特定场景中,您希望在从 systemd 服务管理器启动时将子进程与主进程 (exectest) 分离。但是,您发现子进程与主进程一起终止。
解决方案在于修改 systemd 配置文件(/etc/systemd/system/exectest.service)以包含以下行:
KillMode=process
默认情况下,systemd 应用“控制组”终止模式,该模式在终止时终止主进程控制组内的所有子进程。通过将其更改为“process”,您可以指示 systemd 仅终止主进程本身,而使子进程保持不变。
此修改可确保子进程继续执行并在主进程终止或重新启动后继续存在进程,即使它是从 systemd 启动的。
以上是如何防止Systemd在主进程退出时杀死子进程?的详细内容。更多信息请关注PHP中文网其他相关文章!