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中文网其他相关文章!