一定時間使用していない場合はシャットダウンする

一定時間使用していない場合はシャットダウンする

私は「メディア センター」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、コンピューターはシャットダウンします。

スクリプトを実行すると、次の小さなダイアログ ボックスが表示されます。

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

それは素晴らしいことだと思いますzenityが、このような単純なタスクの場合はこれがxmessage最も簡単かもしれません。

答え2

1 つの質問に実際の質問が多すぎます。次回は別の質問をしてください。あなたが説明した問題は、ビデオ プレーヤー オプションの「サスペンドを禁止する」または「スクリーンセーバーを無効にする」で解決できるはずです。VLC の設定のどこかにこのオプションがあります。ただし、機能しないことがあるという報告があります。bash
スクリプトからダイアログを表示するには、xdialogユーティリティを使用します。ただし、crontab など、ユーザー セッションの外部から実行すると、単純には機能しません。まず X サーバーのセキュリティを無効にする必要があります。
標準ユーザーとして poweroff を実行するには、systemd を介して実行します
systemctl poweroff

関連情報