systemd --user 服务是否正常关闭?

systemd --user 服务是否正常关闭?

当我登录我的用户帐户时,我有一些使用 systemd 启动的服务,例如我做了:

systemctl --user enable foo.service

但我通常会突然终止我的 X 会话,即只需按电源按钮即可直接启动 systemd 关闭(我有一个最小的桌面环境)。 Systemd 终止 X,将所有子进程发送到坟墓。

--user在这种情况下,systemd 会正常关闭foo 服务吗?

答案1

systemd --user作为名为 的系统服务运行[email protected]。这是一个模板服务。您的实例可能是[email protected].该数字是您的用户 ID ( id -u)。

系统关闭程序将[email protected]用通常的信号发出停止信号SIGTERM。作为响应,该systemd --user进程将通知每个用户服务停止。[*]

systemctl cat [email protected]建议将用户服务超时(宽限期)设置为超过 120 秒没有什么意义。此后,所有用户服务都将从SIGKILL主系统(PID 1)接收。 SIGKILL立即致命。

要了解此文件中的设置,请参阅man systemd.killman systemd.service


[*] 从技术上讲,systemd --user响应的作用SIGTERM是激活用户单元exit.target。这在 中提到过man systemd。有关 的更多信息exit.targetsystemctl cat exit.target将告诉您查看man systemd.special:-)。

相关内容