AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1196871
Accepted
sxc731
sxc731
Asked: 2019-12-18 09:44:30 +0800 CST2019-12-18 09:44:30 +0800 CST 2019-12-18 09:44:30 +0800 CST

GNOME:自 19.10 升级以来,笔记本电脑盖关闭时暂停不再有效

  • 772

我非常肯定这在 19.04(和过去的版本)中可以完美运行,但在版本升级到 19.10(内核 5.3.0-24,ThinkPad X1 Carbon gen 5 以防万一)后不再如此。

我在 GNOME-Tweaks 中设置了相应的开关,并且还尝试按照此处/etc/systemd/logind.conf的建议手动编辑,即取消注释并调整以下行,然后重新启动:

$ grep -v '^#' /etc/systemd/logind.conf
[Login]
HandleLidSwitch=suspend
HandleLidSwitchExternalPower=suspend
HandleLidSwitchDocked=suspend
LidSwitchIgnoreInhibited=yes

(严格来说,应该只需要第一个,但为了以防万一,我还添加了第 2 行和第 3 行,以及 #4 以更好地衡量......

查看 的输出systemctl status systemd-logind,我看到以下内容:

Dec 17 17:56:50 x1c5 systemd-logind[8959]: Lid closed.
Dec 17 17:57:03 x1c5 systemd-logind[8959]: Lid opened.

所以盖子事件被正确检测到。为了排除挂起过程本身的任何问题,我还在设置->电源->挂起和电源按钮中将电源按钮设置为挂起,以进行测试。现在按下电源按钮会导致以下输出systemctl status systemd-logind(在成功的挂起-恢复循环之后):

Dec 17 18:13:58 x1c5 systemd-logind[8959]: Power key pressed.
Dec 17 18:14:28 x1c5 systemd-logind[8959]: Delay lock is active (UID 121/gdm, PID 9215/gsd-power) but inhibitor timeout is reached.
Dec 17 18:14:39 x1c5 systemd-logind[8959]: Operation 'sleep' finished.

底线:盖子事件被正确检测并且暂停工作完美 - 但不是在盖子关闭时......

知道如何让关闭盖子的暂停功能恢复活力吗?我当然可以使用电源按钮的解决方法,但它有点太容易忘记并导致笔记本电脑在包里过热等......

--- 编辑添加 ---

得到了这张票的进一步礼遇,尽管问题与描述的不完全一样。这是一支确凿的证据:

$ systemd-inhibit --list --mode=block
WHO       UID  USER      PID  COMM           WHAT                                                     WHY                                                         MODE 
gdm       121  gdm       2231 gsd-power      handle-lid-switch                                        External monitor attached or configuration changed recently block
gdm       121  gdm       2252 gsd-media-keys handle-power-key:handle-suspend-key:handle-hibernate-key GNOME handling keypresses                                   block
user      1000 user      3017 gsd-media-keys handle-power-key:handle-suspend-key:handle-hibernate-key GNOME handling keypresses                                   block

这表明盖子关闭操作被阻止,因为“最近连接了外部监视器或配置更改”。我确实使用 USB-C 电缆将我的笔记本电脑连接到显示器,但在我写这篇文章时,它已脱离连接并使用电池运行了近 3 个小时(GNOME 设置仅显示我的笔记本电脑显示器可用)。但是,看起来 systemd 或负责此问题的任何组件仍然错误地认为外部显示器已连接,并且 - 根据票证 - 在这种情况下 GNOME 不支持挂起......

有趣的是,该gsd-power进程(PID 2231)归我的 UID 所有,gdm而不是我的 UID。杀死它会恢复暂停盖子关闭功能。需要弄清楚为什么存在这个进程......当实际连接到外部显示器时,systemd-inhibit --list --mode=block报告gsd-power交互式用户拥有的第二个进程;这似乎是正确和充分的。

gnome gdm suspend gnome-settings-daemon systemd-logind
  • 2 2 个回答
  • 3846 Views

2 个回答

  • Voted
  1. Best Answer
    sxc731
    2019-12-24T10:01:45+08:002019-12-24T10:01:45+08:00

    根据问题末尾的调查,该问题似乎是由 GDM 运行冗余gsd-power进程引起的。这可以在您登录后立即被杀死。这是我的做法:

    1. 创建一个kill脚本如下:

      script=~/bin/kill_gdm_gsd-power.sh
      cat > $script << EOF
      #!/bin/sh
      sudo pkill -u gdm gsd-power
      EOF
      chmod 755 $script
      
    2. 需要允许您的帐户在sudo pkill没有密码提示的情况下运行(确保您对此感到满意)。运行sudo visudo -f /etc/sudoers.d/NOPASSWD并输入以下内容

      Cmnd_Alias PKILL = /usr/bin/pkill
      user ALL=(ALL) NOPASSWD: PKILL
      

      (user上面替换为您自己的用户ID)

    3. 打开 GNOME 启动应用程序小程序 ( gnome-session-properties) 并在您的脚本中添加一个条目,以便在您登录后立即运行。

    理想情况下,我们会找到一种gsd-power完全阻止启动的方法,但我发现这并不简单……如果您找到更好的方法,请加入。

    一个稍微干净的解决方案可能是根据此解决方案handle-lid-switch编写自定义脚本,但脚本主要必须为用户安装,这也可能不是微不足道的......gdm

    杀死 gdm 的进程可能会有一些副作用gsd-power,例如:如果您注销并将笔记本电脑留在 GDM 问候屏幕,但我认为这不是我们许多人会遇到的情况。

    • 2
  2. Tjow
    2020-05-07T22:25:19+08:002020-05-07T22:25:19+08:00

    根据 sxc731 的回答 sudo mv /usr/lib/systemd/gsd-power* /将阻止 gsd-power 在启动时运行,我将其保存在根目录中以防万一,但您可以将其删除。

    如果这与系统的其他部分混淆,我会发表评论——很可能会没事的。

    • 1

相关问题

  • 停止菜单图标闪烁

  • 为什么我的 Kubuntu 会话在恢复后需要相当长的时间才能响应?

  • 如何更改 GDM 中的登录屏幕主题?

  • 是否有适用于 IMAP 邮件帐户的 Gnome 小程序?

  • 如果顶部面板中缺少会话小程序,如何注销?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve