Linux システムでユーザーが非アクティブであることを検出して、電源をオフにする必要があります (非常に頭のない妻と、非常に高価な電気代... :-)。
スクリプトを (crontab で) スケジュールする必要があるため、X 依存のツールは機能しないと思います ($DISPLAY は利用できません)。
何かご意見は?
アップデート
「ユーザーの非アクティブ」とは、ユーザー入力の非アクティブ (マウスとキーボード) を意味します。
Linux システムでユーザーが非アクティブであることを検出して、電源をオフにする必要があります (非常に頭のない妻と、非常に高価な電気代... :-)。
スクリプトを (crontab で) スケジュールする必要があるため、X 依存のツールは機能しないと思います ($DISPLAY は利用できません)。
何かご意見は?
アップデート
「ユーザーの非アクティブ」とは、ユーザー入力の非アクティブ (マウスとキーボード) を意味します。
Xautolockはあなたにぴったりのツールかもしれません。コマンドがトリガーされるまでの非アクティブ時間を分単位で指定できます。
スクリーン セーバーが実行されている時間を確認することを検討してください。
#!/bin/bash
screensaver="atlantis"
t=$(
# check for the screensaver
ps h -o start -C $screensaver |\
# hh:mm:ss -> seconds
awk -F: '{print $1"*3600+"$2"*60+"$3}' |\
bc -l 2>/dev/null | sort -n | tail -1
)
if [ "$t" == "" ]
then
exit 0
fi
n=$(
date "+%T" |\
awk -F: '{print $1"*3600+"$2"*60+"$3}' |\
bc -l 2>/dev/null
)
runtime=$(( $n - $t ))
if [ $runtime -gt 3600 ] || [ $runtime -lt 0 ]
then
echo shutdown -h now
fi
時間値を使用するには、実行時間を取得するために、then から now を減算する必要があります。また、私の場合、プロセス テーブルに表示されるスクリーンセーバー プログラムは、選択したスクリーンセーバーによって異なります。したがって、上記のプログラムは、'atlantis' が現在のスクリーン セーバーであると想定しています。