在一定时间内不使用时关闭

在一定时间内不使用时关闭

我有一台“媒体中心”电脑,有时我会忘记在晚上关闭。如果我记得的话,我通常会远程访问我的“媒体中心”电脑并将其关闭,但大多数晚上我都会忘记这样做,电脑会整夜运行(并且第二天也会运行)。

有没有办法通过对话框(即"Do you want to shutdown?" [Yes] [No])关闭电脑?我之所以想要一个对话框,是因为有时候我们在深夜看电影,我不想随意关机。

我可以做一个在凌晨 1 点运行脚本的 cron 作业,但我不知道如何执行poweroffshutdown作为标准用户执行。有什么帮助吗?我正在运行 Linux Mint 17.3 (Ubuntu 14.04)。

答案1

有没有办法通过对话框(即"Do you want to shutdown?" [Yes] [No])关闭电脑?

我相信最简单的方法是通过xmessage.像这样的东西:

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DISPLAY=:0.0

xmessage -timeout 10 "Shutdown computer?" -buttons yes:0,no:1

case $? in
    0)  
    echo "Shutting down..."
    #systemctl poweroff
    ;;  
    1)  
    echo "Ok."
    ;;  
    *)  
    echo "Mystic error!"
    ;;  
esac

我添加了$PATH$DISPLAY变量,以便它可以被cron(更多关于这里)。当然,如果你要关闭计算机,您必须取消注释该行,当然您也可以删除这些echo语句。我只是快速地将其组合在一起作为样本。

其要点是:当用户按下yes返回代码时0,计算机就会关闭。如果用户按下no返回码是1,则执行不是关闭。 (编辑:)如果timeout几秒钟后没有用户按下任何按钮(10在这种情况下),xmessage将退出0并且计算机将关闭。

执行时,脚本会产生这个小对话框:

https://s22.postimg.org/irl97w835/xmessage.png

我确信这zenity很棒,但对于像这样的简单任务,我认为xmessage可能是最简单的。

答案2

一个问题中有太多实际问题。下次单独问问题。您描述的问题应该通过视频播放器选项“防止暂停”或“禁用屏幕保护程序”来解决。 VLC 在设置中的某处有此选项。然而,人们报告说它有时不起作用。
要显示 bash 脚本中的对话框,请使用xdialog实用程序。然而,如果从外部用户会话运行,比如从 crontab 运行,它就不会简单地工作。您需要首先禁用 X 服务器安全性。
要以标准用户身份运行 poweroff,请通过 systemd 运行它
systemctl poweroff

相关内容