与启动/关闭无关的“OneShot”systemd 服务默认有超时吗?
如果是这种情况,如何验证其发行版使用的当前默认值?
答案1
不。 默认情况下type=oneshot
,服务不兑现TimeoutStartSec
。
超时开始秒=
配置等待启动的时间。如果守护程序服务未在配置的时间内发出启动完成信号,则该服务将被视为失败并再次关闭。采用以秒为单位的无单位值,或时间跨度值,例如“5min 20s”。传递“无穷大”以禁用超时逻辑。默认为管理器配置文件中的 DefaultTimeoutStartSec=,除非使用 Type=oneshot 时,在这种情况下默认禁用超时(参见 systemd-system.conf(5))。
其原因是...
oneshot 的行为与 simple 类似;然而,预计该进程必须在 systemd 启动后续单元之前退出。 RemainAfterExit= 对于此类服务特别有用。如果未指定 Type= 和 ExecStart=,则这是隐含的默认值。
...这意味着它将执行 oneshote 命令,并且当(如果)进程退出时,如果RemainAfterExit
为 true,则服务将被标记为活动状态。如果由于某种原因,进程永远不会退出,那么这可能是一个问题,并导致使用TimeoutStartSec
默认情况下遵循的另一种类型,例如type=simple
.或者,您可以显式设置TimeoutStartSec
服务type=oneshot
。