如何在完成编译作业时防止 GNOME 挂起

dav*_*des 9 gnome power-management suspend

我正在尝试为我的机器构建一个自定义内核,这需要很长时间才能构建(如预期的那样)。是否可以阻止我的 GNOME 桌面挂起机器直到编译完成,然后让它挂起(假设我离开机器正常需要 30 分钟)。

我不想永久禁用挂起(这很容易通过系统设置控制面板完成,但会浪费电源),而是能够指定(通过 PID?)我的编译作业并在完成时让计算机挂起。

sr_*_*sr_ 8

我现在没有时间了解所有详细信息,但请参阅GNOME 电源管理器的常见问题解答“如何使我的应用程序停止计算机自动挂起,它指向Inhibit()UnInhibit()DBus 调用。

一个警告:如果该进程调用Inhibit()退出,抑制结束-dbus-send在shell脚本从而不会做,但需要一些包装脚本(如在Python)。

编辑 此博客文章包含更多信息,还有可能有用的 Python 存根。)


Gus*_*uss 8

您可以完全禁用不活动超时。

例如,要禁用仅针对交流电源的挂起超时,请运行

gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
Run Code Online (Sandbox Code Playgroud)

我个人认为在默认情况下使用交流电源时暂停计算机的不活动超时是完全愚蠢的,并且普通人没有选项可以禁用它。

  • 虽然此答案将禁用交流电源的自动挂起,但它还会将超时更改为 0。要保留超时设置并简单地禁用自动挂起,请使用 `gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive- ac-type 'nothing'` [来源](https://ubuntuhandbook.org/index.php/2021/06/automatic-shutdown-hibernate-on-idle-ubuntu/) (2认同)

dav*_*des 2

GNOME 以实用程序的形式为这个问题开发了一个巧妙的解决方案gnome-session-inhibit。要使用它,您只需在长时间运行的命令之前添加它,例如:

gnome-session-inhibit make
Run Code Online (Sandbox Code Playgroud)

如果需要,可以同时运行多个禁止会话。这些可以通过运行列出gnome-session-inhibit -l。有关更多详细信息,请参阅手册页