通过 crontab 安排关闭监视器?

通过 crontab 安排关闭监视器?

我想在特定时间段自动关闭显示器(例如 07:00 到 11:00 之间)。是否有任何命令可以在 crontab 文件中设置?有没有更好的方法?


总之:

07:00 自动关闭显示器。

11:00 自动打开显示器。

  • 屏幕保护程序和锁屏已被禁用!

答案1

假设您使用默认gnome 屏幕保护程序对于 Ubuntu,打开终端并按照说明运行下一个命令:

  1. mkdir -p bin-如果您还没有目录,此命令将bin在您的文件夹中创建一个目录。home
  2. gedit ~/bin/screen_on_or_off.shscreen_on_or_off.sh- 这将在 gedit 中创建新文件。
  3. 复制并粘贴下一个脚本:

    #!/bin/bash
    
    export DISPLAY=:0 #very important if you want to be runned by a cron job
    
    current_hour=$(date +"%k")
    
    # Defining the disable_screensaver function
    function disable_screensaver {
        # Disabling sleep time
        # 0 value will never turn the screen off; you can change this value as you wish:
        # for example to turn the screen of after 10 min, use 600
        gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
        gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0
        gsettings set org.gnome.desktop.session idle-delay 0
    }
    
    # Defining the enable_screensaver function
    function enable_screensaver {
        # Enabling sleep time to 1 second
        gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 1
        gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 1
        gsettings set org.gnome.desktop.session idle-delay 1
    
        notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Let's go to sleep now!"
    }
    
    if [ "$current_hour" -ge "7" ] && [ "$current_hour" -lt "11" ]; then
        enable_screensaver
    else
        disable_screensaver
    fi
    
    exit 0
    
  4. 保存文件并关闭。

  5. 返回终端并运行:chmod +x screen_on_or_off.sh- 授予脚本的执行访问权限。
  6. 只是为了测试,要运行新脚本,请在终端中输入~/bin/screen_on_or_off.sh
  7. 使用命令编辑 crontab 条目crontab -e(默认情况下这将编辑当前登录用户的 crontab)并添加以下行:

    */1 * * * * /home/$USER/bin/screen_on_or_off.sh  #change $USER with your username
    

    我已经设置了每分钟的 cron 任务,但你可以按照自己的意愿或你认为更好的方式进行更改。参见http://en.wikipedia.org/wiki/Cron在这个意义上。

  8. 保存文件并使用 检查新的 crontab 条目crontab -l

现在您的屏幕将在每天 7 点至 11 点之间关闭。

答案2

更新且更简单的答案,将其放入 cron 中:

0 07 * * *  export DISPLAY=:0 && xset dpms force off
0 11 * * *  export DISPLAY=:0 && xset dpms force on

相关内容