当重新启动我的 Debian 机器时,我的xdg-document-portal
服务超时了 90 秒:
May 25 22:52:02 qaa systemd[2230]: Stopping xdg-document-portal.service - flatpak document portal service...
[...]
May 25 22:52:04 qaa systemd[1]: Started plymouth-reboot.service - Show Plymouth Reboot Screen.
May 25 22:52:04 qaa systemd[1]: plymouth-switch-root-initramfs.service - Tell Plymouth To Jump To initramfs was skipped because no trigger condition checks were met.
May 25 22:53:32 qaa systemd[2230]: xdg-document-portal.service: State 'stop-sigterm' timed out. Killing.
May 25 22:53:32 qaa systemd[2230]: xdg-document-portal.service: Killing process 116031 (xdg-document-po) with signal SIGKILL.
May 25 22:53:32 qaa systemd[2230]: xdg-document-portal.service: Killing process 116037 (fusermount3) with signal SIGKILL.
May 25 22:53:32 qaa systemd[2230]: xdg-document-portal.service: Main process exited, code=killed, status=9/KILL
May 25 22:53:32 qaa systemd[2230]: xdg-document-portal.service: Failed with result 'timeout'.
May 25 22:53:32 qaa systemd[2230]: Stopped xdg-document-portal.service - flatpak document portal service.
(这是来自Debian bug 1071919)。
90年代太长了,我想减少这种延迟。如何?
注意:我已经有一个/etc/systemd/system.conf.d/stop-timeout.conf
文件
[Manager]
# Note[VL]: The default 90s timeout for stopping of units is much too long!
# In general, the timeout is reached, as some unit is frozen or does not
# react. So, let us decrease it to a value that would be less annoying.
DefaultTimeoutStopSec=20s
我认为这已经足够了(目录下没有其他超时设置/etc/systemd
)。但如您所见,事实并非如此。
system.conf.d/
仅适用于系统服务管理器(PID 1)。你的“systemd[2230]:”不是那个,它是一个用户服务管理器,有自己的配置 -
user.conf
和它自己的单元集合。长话短说:
这里有两个解决方案:
为该特定服务创建覆盖并设置
TimeoutStopSec=
请注意,如果省略
--user
,您将收到一条错误消息,指出未找到该服务。这是一个很好的线索,表明您坐错了公共汽车。覆盖全局配置。 @u1686_grawity 是正确的,它位于用户总线上,因此您需要覆盖用户配置。查看
man systemd-system.conf
哪个定义DefaultTimeoutStopSec=
并适用于--system
和--user
总线。需要将其添加到系统总线的以下任意一项中:
/etc/systemd/system.conf
<-- 用于手动编辑/etc/systemd/system.conf.d/*.conf
<-- 最容易管理(IMO)/run/systemd/system.conf.d/*.conf
<-- 对于生成的东西/lib/systemd/system.conf.d/*.conf
<-- 对于包管理器但您的服务位于用户总线上,因此请使用以下任何文件:
~/.config/systemd/user.conf
/etc/systemd/user.conf
/etc/systemd/user.conf.d/*.conf
/run/systemd/user.conf.d/*.conf
/lib/systemd/user.conf.d/*.conf