几乎每次关闭计算机时都会出现以下消息:
A stop job is running for Session c2 of user ... (1min 30s)
它等待 1 分钟 30 秒,然后继续关闭过程。我跟随这个 systemd 关闭诊断指南并得到关机日志.txt(我不能直接将日志粘贴到这里,因为它很长)。不幸的是,我自己无法理解日志。谁能帮我找出是什么原因导致我的系统无法正常关闭?
我运行带有内核的 Arch Linux 4.4.5-1-ARCH
,我的systemd
版本是229-3
.
补充1:我观察到,每次我注销,然后从登录屏幕关闭计算机时,它都不会收到消息A stop job is running...
。我多次尝试在关机前注销,所以我认为这不是偶然发生的。希望信息能有所帮助。
补充2:导致关闭挂起的始终是会话 c2。正如@n.st 所建议的,我查看了诊断关机问题再次并存储loginctl session-status c2
代替dmesg
,但随后就没有任何内容了shutdown-log.txt
。我替换loginctl session-status c2
为systemd-cgls
并得到以下日志:
Control group /:
-.slice
└─init.scope
├─ 1 /usr/lib/systemd/systemd-shutdown reboot --log-level 6 --log-target ...
├─1069 /usr/lib/systemd/systemd-shutdown reboot --log-level 6 --log-target ...
├─1071 /bin/sh /usr/lib/systemd/system-shutdown/debug.sh reboot
└─1074 systemd-cgls
有任何想法吗?
笔记:当我更新到内核后4.6.4-1-ARCH
,systemd 230-7
该错误不再发生。
答案1
解决此问题的方法是将超时时间/etc/systemd/system.conf
从 90 秒减少到例如 10 秒:
DefaultTimeoutStopSec=10s
并在进行更改后在终端中运行以下命令
$ systemctl daemon-reload
答案2
此问题可能有多种原因,因此具体的答案并不能很好地发挥作用。尝试以下方法进行故障排除:
- 等待关机时出现“A stop job is running for Session c2 ...”消息,并在关机完成后重新启动
journalctl -p5
在终端中运行并按END
到达 systemd 日志的末尾(-p5
过滤掉大量垃圾)/
按下并输入搜索词即可开始搜索timed out. Killing.
SHIFT+N
重复按向后搜索- 线以下每场比赛都会告诉您哪个应用程序行为不当:
Killing process 1234 (jack_thru) with signal SIGKILL.
如果它始终是同一个应用程序,您想了解它的用途以及为什么它在关机时不停止。否则解决问题可能会更复杂,但您仍然可能会得到一两个提示。
祝你好运! :)
答案3
我也遇到了同样的问题,在Arch Linux的reddit论坛上搜索发现了一个帖子。
安装看门狗
# pacman -S watchdog
然后在开机时启动该服务:
# systemctl enable watchdog.service
启动服务就不会再看到该消息了
# systemctl start watchdog.service
我为此创建了一个要点https://gist.github.com/dianjuar/98d02af4050dc2df8ae6f18695d44ca3
答案4
在 Kali [2017.01] 上也遇到了类似的问题,交替显示注销延迟:
“用户 Debian-gdm 的会话 c1 正在运行停止作业”
“正在为 UID 132 的用户管理器运行停止作业”
NetworkManager
我设法通过在关闭之前停止或禁用它来消除一个错误,方法是:
# To get rid of: "A stop job is running for User manager for UID 132"
systemctl disable NetworkManager
systemctl stop NetworkManager
这可能应该在重新启动时修复或以其他方式进行。
至于其他的拖延,我还没有成功。看来可能和GDM有关(侏儒显示管理器),pulseaudio
或者dbus
。因此,由于我无法隔离问题,唯一的方法是按照其他帖子中已经提到的方式设置DefaultTimeout*Sec=5s
条目。system.conf
其他可能调查的问题如下所示:
# systemctl --state=masked --state=not-found --state=failed
UNIT LOAD ACTIVE SUB DESCRIPTION
● tmp.mount not-found inactive dead tmp.mount
● auditd.service not-found inactive dead auditd.service
● console-screen.service not-found inactive dead console-screen.service
● festival.service not-found inactive dead festival.service
● kbd.service not-found inactive dead kbd.service
● live-tools.service masked inactive dead live-tools.service
● plymouth-quit-wait.service not-found inactive dead plymouth-quit-wait.service
● plymouth-quit.service not-found inactive dead plymouth-quit.service
● plymouth-start.service not-found inactive dead plymouth-start.service
● systemd-sysusers.service not-found inactive dead systemd-sysusers.service
● systemd-update-done.service not-found inactive dead systemd-update-done.service
● systemd-vconsole-setup.service not-found inactive dead systemd-vconsole-setup.service
● syslog.target not-found inactive dead syslog.target
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
和:
# systemd-cgls -u user-132.slice
Unit user-132.slice (/user.slice/user-132.slice):
├─[email protected]
│ ├─pulseaudio.service
│ │ └─739 /usr/bin/pulseaudio --daemonize=no
│ ├─at-spi-dbus-bus.service
│ │ ├─704 /usr/lib/at-spi2-core/at-spi-bus-launcher
│ │ ├─709 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
│ │ └─712 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
│ ├─dbus.service
│ │ └─694 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
│ └─init.scope
│ ├─597 /lib/systemd/systemd --user
│ └─600 (sd-pam)
└─session-c1.scope
├─577 gdm-session-worker [pam/gdm-launch-environment]
├─613 /usr/lib/gdm3/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart
├─618 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/132/gdm/Xauthority -background none -noreset -keeptty -verbose 3
├─697 /usr/lib/gnome-session/gnome-session-binary --autostart /usr/share/gdm/greeter/autostart
├─721 /usr/bin/gnome-shell
└─752 /usr/lib/gnome-settings-daemon/gnome-settings-daemon