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 / 问题 / 577862
Accepted
Rusty Weber
Rusty Weber
Asked: 2015-01-26 17:32:23 +0800 CST2015-01-26 17:32:23 +0800 CST 2015-01-26 17:32:23 +0800 CST

如何从命令行暂时禁用睡眠和休眠

  • 772

只要满足预定条件,似乎有很多方法可以在需要时永久操纵 Ubuntu 的设置以使其进入睡眠状态。然而,这些是更永久的解决方案,没有考虑可能想要暂时放弃标准策略的罕见任务。我遇到的问题是我有一个运行时间很长的脚本来做一些备份,我不希望计算机在该特定进程运行时进入睡眠或休眠状态,这通常需要 30-50 分钟。因此,是否有一个命令可以包含在我的备份脚本中,以防止系统在备份脚本运行时休眠/休眠,是否还有一个命令可以在备份完成后恢复正常的默认电源策略?

就像是

#!/usr/bin/bash
#disable normal powerpolicy
disable-power-policies
backup /dev/sda /dev/sdb /dev/fioa /dev/fiob
#enable power policies.
enable-power-policies
command-line
  • 7 7 个回答
  • 12442 Views

7 个回答

  • Voted
  1. Best Answer
    Dustin Kirkland
    2016-12-09T16:49:07+08:002016-12-09T16:49:07+08:00

    在 Ubuntu 16.04 LTS 上,我成功地使用了以下命令来禁用挂起:

    sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
    

    这是重新启用它:

    sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
    
    • 16
  2. DanielKO
    2021-02-17T18:03:51+08:002021-02-17T18:03:51+08:00

    临时最方便的方法是使用systemd-inhibit:

    systemd-inhibit CMD [...]
    

    在没有额外选项的情况下,systemd-inhibit将CMD在暂时禁用空闲检测(可能会自动挂起/休眠机器)、显式挂起/休眠(例如,您不小心按下键盘上的睡眠键)和关机命令的同时执行。

    您可以使用它来调用您的备份脚本,如下所示:

    systemd-inhibit ./my-backup-task.sh
    
    • 8
  3. DanglingPointer
    2016-06-12T06:48:22+08:002016-06-12T06:48:22+08:00

    去年我遇到了完全相同的问题,备份需要几个小时!

    你可以试试 Keep.Awake https://launchpad.net/keep.awake 它可以监控 CPU 负载、网络流量和用户活动的最小阈值。

    我还没有抽出时间为它创建一个 snap 或 deb。但是,您可以暂时从此处的 Launchpad 下载该程序

    当前版本稳定,适用于从 14.04 到 16.04 的所有 Ubuntu 版本。也就是说,我正在不断改进它,并将添加新功能。

    它像一个正确的命令一样工作。键入 --help 以查看可以执行的操作的完整列表。下面的示例只是其中的一部分:

    ./keepawake.py --help
    

    交互式运行:

    ./keepawake.py
    

    作为后台服务运行:

    nohup ./keepawake.py -r > /dev/null 2>&1 &
    

    要作为后台服务运行并在确定用户空闲之前将 15 分钟(900 秒)设置为用户活动空闲时间:

    nohup ./keepawake.py -u 900 -r > /dev/null 2>&1 &
    

    要作为后台服务运行并将最小 CPU 负载设置为 13%:

    nohup ./keepawake.py -c 13 -r > /dev/null 2>&1 &
    

    要作为后台服务运行并将最小网络流量设置为 5KB(5120 字节):

    nohup ./keepawake.py -s 5120 -r > /dev/null 2>&1 &
    

    要一次运行以上所有三个设置(网络、CPU、用户空闲):

    nohup ./keepawake.py -s 5120 -c 13 -u 900 -r > /dev/null 2>&1 &
    
    • 4
  4. g_p
    2015-01-26T21:16:47+08:002015-01-26T21:16:47+08:00

    您可以gsettings在脚本中使用来禁用电源设置中的自动挂起并再次恢复电源设置的默认行为。

    这是一个简单的配置,它首先获取当前睡眠超时,禁用它并在执行一些任务后重新启用它。

    #!/bin/bash   
    
    #get the current timeout for automatic suspend both for on battey power and when plugged in.
    a=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout)
    b=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout)
    
    
    #Disable automatic suspend 
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0
    
    #Your task here
    sleep 5
    
    #Enable the automatic suspend
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout $a
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout $b
    
    • 3
  5. jbrock
    2015-10-11T13:33:13+08:002015-10-11T13:33:13+08:00

    下面是如何在 Xfce 中执行此操作。(感谢 g_p 的回答,这让我开始了自己的工作。)

    #!/bin/bash
    
    # Grab current sleep timeout on battery and ac
    a=$(xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac)
    b=$(xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery)
    
    # Set sleep to never on battery and ac
    xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s 14
    xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 14
    
    # Your task here
    sleep 5
    
    # Reset sleep to what it was before on battery and ac
    xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s "$a"
    xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s "$b"
    
    • 1
  6. user26742873
    2021-02-11T04:35:24+08:002021-02-11T04:35:24+08:00

    试试caffeine,可以安装

    sudo apt install caffeine
    
    • 1
  7. u628898
    2021-09-21T21:45:45+08:002021-09-21T21:45:45+08:00

    http://manpages.ubuntu.com/manpages/focal/man1/systemd-inhibit.1.html

       systemd-inhibit - Execute a program with an inhibition lock taken
    

    概要

       systemd-inhibit [OPTIONS...] [COMMAND] [ARGUMENTS...]
    
       systemd-inhibit [OPTIONS...] --list
    

    描述

       systemd-inhibit may be used to execute a program with a shutdown, sleep, or idle inhibitor
       lock taken. The lock will be acquired before the specified command line is executed and
       released afterwards.
    
       Inhibitor locks may be used to block or delay system sleep and shutdown requests from the
       user, as well as automatic idle handling of the OS. This is useful to avoid system
       suspends while an optical disc is being recorded, or similar operations that should not be
       interrupted.
    
       For more information see the Inhibitor Lock Developer Documentation[1].
    

    https://www.freedesktop.org/wiki/Software/systemd/inhibit

    • 0

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

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