そのため、起動、スクリーンセーバー、リモコンなどの特定のイベント中に受信機とテレビの電源を制御するために使用されるスクリプトのコレクションがあります。これらの 1 つはログイン中に実行されますが、マシンの電源投入がスケジュールされているときにスクリプトを実行したくない可能性があります。起動アプリの実行中にブランク = 0 の場合、イベントを無視するロジックがあるため、起動またはシャットダウン中に ir を送信しません。cron を使用してこれを達成するにはどうすればよいですか? これらのイベントは、アプリケーションの起動前に発生するため、cron を選択します。Cronは素晴らしいですが、私が理解している限り、起動時またはスケジュールでしか実行できません。時間変数をスクリプト化する必要がありますが、方法がわかりません。
syson.sh (起動アプリとしてのログイン時と画面状態変化時に呼び出される)
#!/bin/sh
cd /home/gilson585/
blanked=`cat blanked`
if [ $blanked -eq 0 ] ; then
blanked=1;echo $blanked > blanked
else
irsend SEND_ONCE VR4085DF KEY_POWER;irsend SEND_ONCE Kenwood_RC-R0813 power;blanked=0;echo $blanked > blanked
sleep 1
irsend SEND_ONCE Kenwood_RC-R0813 cd/dvd
fi
sysoff.sh (lirc init.d スクリプトの一部としてシャットダウン中に呼び出され、画面の状態が変化します)
#!/bin/sh
cd /home/gilson585/
blanked=`cat blanked`
if [ $blanked -eq 0 ] ; then
irsend SEND_ONCE Kenwood_RC-R0813 power;irsend SEND_ONCE VR4085DF KEY_POWER;blanked=1;echo $blanked > blanked
fi
xscreensaver.sh (ログイン時に呼び出されるスクリーンセーバー ウォッチドッグ)
#!/bin/bash
cd /home/gilson585/
xscreensaver-command -watch|
while read STATUS; do
case "$STATUS" in
BLANK*)
/home/gilson585/sysoff.sh;blanked=1;echo $blanked > blanked
;;
UNBLANK*)
/home/gilson585/syson.sh;blanked=0;echo $blanked > blanked
;;
esac
done