我有一台「媒體中心」電腦,有時我會忘記在晚上關閉。如果我記得的話,我通常會遠端存取我的「媒體中心」電腦並將其關閉,但大多數晚上我都會忘記這樣做,電腦會整夜運行(並且第二天也會運行)。
有沒有辦法透過對話框(即"Do you want to shutdown?" [Yes] [No]
)關閉電腦?我之所以想要一個對話框,是因為有時候我們在深夜看電影,我不想隨意關機。
我可以做一個在凌晨 1 點運行腳本的 cron 作業,但我不知道如何執行poweroff
或shutdown
作為標準使用者執行。有什麼幫助嗎?我正在運行 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
並且電腦將關閉。
執行時,腳本會產生這個小對話框:
我確信這zenity
很棒,但對於像這樣的簡單任務,我認為xmessage
可能是最簡單的。
答案2
一個問題中有太多實際問題。下次單獨問問題。您描述的問題應該透過視訊播放器選項「防止暫停」或「停用螢幕保護程式」來解決。 VLC 在設定中的某處有此選項。然而,人們報告說它有時不起作用。
若要顯示 bash 腳本中的對話框,請使用xdialog
實用程式。然而,如果從外部使用者會話運行,例如從 crontab 運行,它就不會簡單地工作。您需要先停用 X 伺服器安全性。
若要以標準使用者身分執行 poweroff,請透過 systemd 運行它
systemctl poweroff
。