当我的 Xubuntu 18.04 笔记本电脑从挂起状态恢复时,如果笔记本电脑挂起超过几个小时,systemd-logind 会自动退出当前会话。如果挂起和恢复之间的间隔很短,则不会注销。我还没有发现这个间隔需要多长时间才能导致注销。
我在 systemd-logind.service 上启用了调试,创建了文件/etc/systemd/system/systemd-logind.service.d/10-debug.conf:
[Service]
Environment=SYSTEMD_LOG_LEVEL=debug
这导致 systemd-logind 记录它处理的所有 D-Bus 消息,但无法发现可能导致注销的任何原因。
在 systemd-logind 开始终止当前会话之前,我扫描了所有 systemd 日志消息 ( journalctl
),调查了所有可疑的内容,但没有发现任何可能影响自动注销的内容。以下是一些我觉得可疑的消息(它们不是连续的,而是从不同场合提取的):
upowerd[1600]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0
polkitd(authority=local)[840]: Unregistered Authentication Agent for unix-session:c2 (system bus name :1.46, object path /org/gnome/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
wpa_supplicant[811]: dbus: fill_dict_with_properties dbus_interface=fi.w1.wpa_supplicant1.Interface dbus_property=Stations getter failed
wpa_supplicant[811]: dbus: wpa_dbus_get_object_properties: failed to get object properties: (none) none
at-spi-bus-launcher[7031]: XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
at-spi-bus-launcher[7031]: after 30333 requests (30333 known processed) with 0 events remaining.
systemd-logind[779]: Inhibitor xfce4-power-manager (xfce4-power-manager handles these events) pid=8611 uid=1000 mode=block stopped
systemd-logind[779]: Electing new display for user paulo
systemd-logind[779]: Ignoring session c8
logind 配置中没有任何可能导致这种情况的因素:
paulo:~$ loginctl show-session
EnableWallMessages=no
NAutoVTs=6
KillUserProcesses=no
RebootToFirmwareSetup=no
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
BlockInhibited=handle-power-key:handle-suspend-key:handle-hibernate-key
DelayInhibited=sleep
InhibitDelayMaxUSec=5s
HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleHibernateKey=hibernate
HandleLidSwitch=suspend
HandleLidSwitchDocked=ignore
HoldoffTimeoutUSec=30s
IdleAction=ignore
IdleActionUSec=30min
PreparingForShutdown=no
PreparingForSleep=no
Docked=no
RemoveIPC=yes
RuntimeDirectorySize=615313408
InhibitorsMax=8192
NCurrentInhibitors=5
SessionsMax=8192
NCurrentSessions=1
UserTasksMax=10813
我找不到任何可能导致在一段时间后自动注销的东西。我真的被难住了。
答案1
对于 18.04 上因 SIGBUS 而间歇性的 X 崩溃,请检查此答案:
答案2
我已确认该问题是由 Xorg 服务器因 SIGBUS 崩溃引起的。Xorg 服务器崩溃,systemd-logind 创建了一个新的登录会话。
Xorg 服务器因来自以下服务器的请求数量过多而崩溃at-spi-总线启动器每次崩溃之前,systemd 日志中都会记录如下消息:
at-spi-bus-launcher[31720]: XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
at-spi-bus-launcher[31720]: after 8065 requests (8065 known processed) with 0 events remaining.
这似乎是一个有记录的问题,当 Xorg 无间隔地收到过多请求时,它就会崩溃。
要解决此错误,需要执行 2 个步骤:
- 卸载包
at-spi2-core
- 添加
export NO_AT_BRIDGE=1
。轮廓,这样 GTK 应用程序就不会抱怨缺少可访问性总线
采取此解决方法后,Xorg 不再崩溃,并且从挂起状态恢复后也不再自动注销。
我提交了错误报告反对SPI在 Gnome BugZilla 上。
答案3
当我以为我已经解决了这个问题时,它又一次困扰了我 :-(。问题本身确实是由 Xorg 服务器因 SIGBUS 崩溃引起的,但崩溃的根本原因不是 at-spi-bus-launcher 行为不当。它不应该循环发出那些重复的请求,因此先前的程序仍然有效,尽管它不是解决 Xorg 崩溃的办法。
我发现 Xorg 正在使用内核驱动程序i915:
paulo:~$ sudo lshw -C video
*-display
description: VGA compatible controller
product: 2nd Generation Core Processor Family Integrated Graphics Controller
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 09
width: 64 bits
clock: 33MHz
capabilities: msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:36 memory:f6800000-f6bfffff memory:e0000000-efffffff ioport:f000(size=64) memory:c0000-dffff
所以我尝试了另一种解决方法,强制 Xorg 使用xserver-xorg-video-intel
加速方法乌萨,比默认的更稳定国民网络体系。
- 创建目录/etc/X11/xorg.conf.d.我们可以放置xorg配置文件此目录中的片段,Xorg 服务器在启动时会获取它们。
- 创建文件/etc/X11/xorg.conf.d/10-intel.conf,指示 Xorg 使用其英特尔具有加速方法的视频驱动程序乌萨。
以下是/etc/X11/xorg.conf.d/10-intel.conf:
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "uxa"
EndSection
我已经使用这个解决方法 1 周了,Xorg 服务器没有崩溃,所以我的印象是,在 Xorg 尚未修复的情况下,这是明确的解决方法。
我打开了一个错误报告针对 Xorg,这似乎影响了更多用户,因为它被标记为重复的另一个错误,由于它的标题提到了另一种类型的崩溃,所以我一开始没有检测到。
答案4
对于那些仍然面临此问题的人,以下是我的经验。Nvidia 驱动程序是问题所在。在 Linux 内核版本 5.0.0-27 上,在我安装 Nvidia 驱动程序后,开始出现“从挂起状态恢复时注销”的情况。
在多次“修复”失败之后(此处和其他地方列出),我使用 prime-select 工具禁用了 nvidia。现在我的笔记本电脑可以唤醒并恢复会话。我已经测试了启用/禁用 nvidia,可以放心地得出结论,这是一种解决方法。
但我还是想使用 nvidia。
以下是上述 I/O 错误前后的 10 行:
Sep 4 15:11:44 rajesh gnome-session-binary[13674]: WARNING: App
'org.gnome.SettingsDaemon.Wacom.desktop' exited with code 1
Sep 4 15:11:44 rajesh gnome-session[13674]: gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.Power.desktop' exited with code 1
Sep 4 15:11:44 rajesh gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.Power.desktop' exited with code 1
Sep 4 15:11:44 rajesh org.gnome.SettingsDaemon.XSettings.desktop[14715]: Cannot open display:
Sep 4 15:11:44 rajesh gnome-session[13674]: gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.XSettings.desktop' exited with code 1
Sep 4 15:11:44 rajesh gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.XSettings.desktop' exited with code 1
Sep 4 15:11:44 rajesh org.gnome.SettingsDaemon.Keyboard.desktop[14716]: Cannot open display:
Sep 4 15:11:44 rajesh gnome-session[13674]: gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.Keyboard.desktop' exited with code 1
Sep 4 15:11:44 rajesh gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.Keyboard.desktop' exited with code 1
Sep 4 15:11:45 rajesh kernel: [ 5497.467961] psmouse serio4: synaptics: queried max coordinates: x [..5664], y [..4682]
Sep 4 15:11:45 rajesh at-spi-bus-launcher[13209]: XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
Sep 4 15:11:45 rajesh at-spi-bus-launcher[13209]: after 87 requests (87 known processed) with 0 events remaining.
Sep 4 15:11:45 rajesh gnome-shell[13755]: gnome-shell: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Sep 4 15:11:45 rajesh gnome-session[13674]: gnome-session-binary[13674]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Sep 4 15:11:45 rajesh gnome-session-binary[13674]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Sep 4 15:11:45 rajesh gsd-color[13835]: gsd-color: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Sep 4 15:11:45 rajesh gnome-session[13674]: gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.Color.desktop' exited with code 1
Sep 4 15:11:45 rajesh gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.Color.desktop' exited with code 1
Sep 4 15:11:45 rajesh gsd-color[8763]: failed to connect to device: Failed to connect to missing device /org/freedesktop/ColorManager/devices/xrandr_Goldstar_Company_Ltd_LG_ULTRAWIDE_122157_kanak_1000
Sep 4 15:11:45 rajesh gsd-color[8763]: failed to connect to device: Failed to connect to missing device /org/freedesktop/ColorManager/devices/xrandr_LG_Display_kanak_1000
Sep 4 15:11:45 rajesh org.gnome.SettingsDaemon.Color.desktop[14727]: Cannot open display:
Sep 4 15:11:45 rajesh gnome-session[13674]: gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.Color.desktop' exited with code 1
Sep 4 15:11:45 rajesh gnome-session-binary[13674]: WARNING: App 'org.gnome.SettingsDaemon.Color.desktop' exited with code 1
Sep 4 15:11:45 rajesh gnome-shell[14724]: Failed to create backend: Unable to open display ':0'
Sep 4 15:11:45 rajesh gnome-session[13674]: gnome-session-binary[13674]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Sep 4 15:11:45 rajesh gnome-session[13674]: gnome-session-binary[13674]: WARNING: App 'org.gnome.Shell.desktop' respawning too quickly