在 Xubuntu 18.04 上从挂起状态恢复时自动注销

在 Xubuntu 18.04 上从挂起状态恢复时自动注销

当我的 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 崩溃,请检查此答案:

Ubuntu 18.04 从睡眠状态唤醒时出现错误:交换设备上的读取错误

答案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 个步骤:

  1. 卸载包at-spi2-core
  2. 添加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加速方法乌萨,比默认的更稳定国民网络体系

  1. 创建目录/etc/X11/xorg.conf.d.我们可以放置xorg配置文件此目录中的片段,Xorg 服务器在启动时会获取它们。
  2. 创建文件/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

相关内容