在一定時間內不使用時關閉

在一定時間內不使用時關閉

我有一台「媒體中心」電腦,有時我會忘記在晚上關閉。如果我記得的話,我通常會遠端存取我的「媒體中心」電腦並將其關閉,但大多數晚上我都會忘記這樣做,電腦會整夜運行(並且第二天也會運行)。

有沒有辦法透過對話框(即"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

相關內容