私は「メディア センター」PC を持っていますが、夜にシャットダウンするのを忘れることがあります。思い出したら、通常は「メディア センター」PC にリモート アクセスしてシャットダウンしますが、ほとんどの夜はそれを忘れてしまい、PC は一晩中 (そして翌日も) 稼働し続けます。
ダイアログ ボックス (つまり"Do you want to shutdown?" [Yes] [No]
) 経由で PC をシャットダウンする方法はありますか? ダイアログ ボックスが必要な理由は、夜遅くに映画を見ているときに勝手にシャットダウンしたくないからです。
午前 1 時にスクリプトを実行する cron ジョブは実行できますが、標準ユーザーとして実行する方法poweroff
もわかりません。何か助けはありますか? Linux Mint 17.3 (Ubuntu 14.04) を実行しています。shutdown
答え1
"Do you want to shutdown?" [Yes] [No]
ダイアログボックス(つまり)を介して PC をシャットダウンする方法はありますか?
これを行う最も簡単な方法は だと思います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
1 つの質問に実際の質問が多すぎます。次回は別の質問をしてください。あなたが説明した問題は、ビデオ プレーヤー オプションの「サスペンドを禁止する」または「スクリーンセーバーを無効にする」で解決できるはずです。VLC の設定のどこかにこのオプションがあります。ただし、機能しないことがあるという報告があります。bash
スクリプトからダイアログを表示するには、xdialog
ユーティリティを使用します。ただし、crontab など、ユーザー セッションの外部から実行すると、単純には機能しません。まず X サーバーのセキュリティを無効にする必要があります。
標準ユーザーとして poweroff を実行するには、systemd を介して実行します
systemctl poweroff
。