用户的会话 c2 正在运行停止作业

用户的会话 c2 正在运行停止作业

几乎每次关闭计算机时都会出现以下消息:

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 c2systemd-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-ARCHsystemd 230-7该错误不再发生。

答案1

解决此问题的方法是将超时时间/etc/systemd/system.conf从 90 秒减少到例如 10 秒:

DefaultTimeoutStopSec=10s

并在进行更改后在终端中运行以下命令

$ systemctl daemon-reload

答案2

此问题可能有多种原因,因此具体的答案并不能很好地发挥作用。尝试以下方法进行故障排除:

  1. 等待关机时出现“A stop job is running for Session c2 ...”消息,并在关机完成后重新启动
  2. journalctl -p5在终端中运行并按END到达 systemd 日志的末尾(-p5过滤掉大量垃圾)
  3. /按下并输入搜索词即可开始搜索timed out. Killing.
  4. SHIFT+N重复按向后搜索
  5. 线以下每场比赛都会告诉您哪个应用程序行为不当:Killing process 1234 (jack_thru) with signal SIGKILL.

如果它始终是同一个应用程序,您想了解它的用途以及为什么它在关机时不停止。否则解决问题可能会更复杂,但您仍然可能会得到一两个提示。

祝你好运! :)

答案3

我也遇到了同样的问题,在Arch Linux的reddit论坛上搜索发现了一个帖子。

这是适合我的解决方案 https://www.reddit.com/r/archlinux/comments/4bawf7/a_stop_job_is_running_for_session_c2_of_user/d17th3u

安装看门狗

# 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

相关内容