私は時々夜に消すことを忘れている「メディアセンター」コンピュータを持っています。私が覚えていたら、私は通常リモートで「メディアセンター」コンピュータにアクセスしてシャットダウンしましたが、ほとんどの夜はこれを忘れてコンピュータが一晩中働きました(翌日も同じでした)。
"Do you want to shutdown?" [Yes] [No]
ダイアログボックス(例:)でコンピュータをシャットダウンする方法はありますか?私がダイアログをしたいのは、時々私たちが夜遅くに映画を見たときにランダムに電話をオフにしたくないからです。
poweroff
午前1時にスクリプトを実行するcronタスクを実行できますが、どうすればよいのか、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
戻りコードが yes を押すと、1
次のようになります。いいえ閉鎖。 (編集:)timeout
数秒後(10
この場合)、ユーザーがボタンを押さないとシャットダウンされ、xmessage
コンピュータ0
がシャットダウンします。
スクリプトが実行されると、次のような小さなダイアログボックスが生成されます。
素晴らしいと確信していますzenity
が、このような簡単な作業の場合、おそらくxmessage
最も簡単な方法でしょう。
答え2
1つの質問に実用的な問題が多すぎます。質問は次回別々に質問させていただきます。説明した問題は、ビデオプレーヤーのオプション「一時停止を防ぐ」または「スクリーンセーバーを無効にする」で解決する必要があります。 VLC設定のどこかにこのオプションがあります。しかし、人々は時々それがうまくいかないと報告します。
Bash スクリプトでダイアログを表示するには、xdialog
ユーティリティを使用します。ただし、crontabなどの外部ユーザーセッションで実行すると、単に機能しません。まず、Xサーバーのセキュリティを無効にする必要があります。
標準ユーザーとしてpoweroffを実行するには、systemdを介して実行します
systemctl poweroff
。