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中文網其他相關文章!