systemd 服务单元选项 Type=oneshot 是否适合需要一段时间的脚本?

systemd 服务单元选项 Type=oneshot 是否适合需要一段时间的脚本?

我想知道哪一个Type更适合运行需要一段时间才能完成的脚本的服务。该单元由一个单元触发systemd.path

当然我会说oneshot,但我不是100%确定。

答案1

是的。

该脚本可以运行任意长时间。这是因为 . 没有启用通常的服务启动超时(90 秒)Type=oneshot。但是,如果您想强制某项Type=oneshot服务超时,您只需手动设置即可。

超时开始秒=

配置等待启动的时间。如果守护程序服务未在配置的时间内发出启动完成信号,则该服务将被视为失败并再次关闭。采用以秒为单位的无单位值,或时间跨度值,例如“5min 20s”。传递“无穷大”以禁用超时逻辑。默认为管理器配置文件中的 DefaultTimeoutStartSec=,除非使用 Type=oneshot,在这种情况下默认禁用超时

--man systemd.service

不使用的另一个原因Type=simple是,您的服务状态在运行时将显示为“已启动”。 Type=oneshot将会显示“正在启动”的状态......也许这并不完美,但我认为这更有意义。

相关内容