KillSignal 如何与 systemd 中的 TimeoutStopSec 交互?

KillSignal 如何与 systemd 中的 TimeoutStopSec 交互?

有人可以告诉我有关 systemd 服务关闭顺序的以下信息吗?

  1. 如果我已经指定KillSignal=SIGTERM,那么这将如何交互TimeoutStopSec?这是否意味着在服务关闭期间,SIGTERM将首先发送,如果服务仍在运行,TimeoutStopSec SIGKILL则将发送(如果SendSIGKILL设置为是)?我问的是未指定任何内容的情况ExecStop

  2. 是否TimeoutStopSec考虑到ExecStop了全部ExecPostStop

答案1

systemd 邮件列表中已回答了这个问题。在此处交叉发布答案

有人可以告诉我有关 systemd 服务关闭顺序的以下信息吗?

1.

If I have specified KillSignal=SIGTERM then how does this interact this
TimeoutStopSec ? Does this mean that during shutdown of service, first
SIGTERM will be sent and if the service is still running after
TimeoutStopSec SIGKILL will be sent (if SendSIGKILL is set to yes? I am
asking about the case where nothing is specified in ExecStop.

对,那是正确的

2.

Does TimeoutStopSec take into account ExecStop and all ExecPostStop?

TimeoutStopSec 适用于每条命令。如果 ExecStopPost 命令失败(或超时),则不会执行后续命令,但如果每条命令都需要差不多 TimeoutStopSec 的时间,则总执行时间将接近 ExecStopPost 命令乘以 TimeoutStopSec。

相关内容