如何跳过 systemd 中的 90 秒超时

use*_*610 19 systemd systemd-boot

是否可以交互跳过 systemd 中的 90 秒超时?例如,当它等待磁盘可用或用户注销时?我知道它最终会失败,所以我现在可以让它失败吗?我讨厌只是无助地盯着屏幕。

gro*_*mal 14

您有两个选择:

  1. 您可以将TimeoutStopSpec=特定 UNIT 设置为特定值(以秒为单位*)以等待。您也可以将其设置为infinity在这种情况下永远不会发送 SIGKILL(不推荐,因为您最终可能会遇到难以调试的失控服务)。

  2. DefaultTimeoutStopSec=inside /etc/systemd/system.conf(或user.conf,或*.d目录之一)设置为所有未TimeoutStopSpec=指定的UNIT将使用的默认值。此设置的默认值是您通常看到的 90 年代。

手册页参考:

  • man systemd.service 为了 TimeoutStopSpec=
  • man systemd-system.conf 为了 DefaultTimeoutStopSec=

* systemd 也接受时间规格,例如“2min 3s”。这在男人中得到了广泛的描述。

  • 这不是交互式的。当 systemd 已经在倒数 90 年代时,再做这些更改为时已晚,我只能无奈地坐在那里。 (12认同)
  • 我主要是桌面用户,所以我倾向于以不同的方式看待事物。还记得 [Torvalds 女儿的打印机](https://plus.google.com/+LinusTorvalds/posts/1vyfmNCYpi5)吗?许多设计缺陷可以通过安全问题来证明。 (5认同)

use*_*610 8

这不可能。Systemd 是非交互式的。


Mse*_*ade 7

您可以在/etc/systemd/system.conf以下行中取消注释:

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s
Run Code Online (Sandbox Code Playgroud)

并将值更改为您认为合适的值。

  • 与其他答案相同,这不是交互式的。当 systemd 已经在倒数 90 年代时,再做这些更改为时已晚,我只能无奈地坐在那里。 (9认同)