10

そのため、起動、スクリーンセーバー、リモコンなどの特定のイベント中に受信機とテレビの電源を制御するために使用されるスクリプトのコレクションがあります。これらの 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
4

1 に答える 1

-1

ああ。少なくとも、現時点では 2 つのスクリプトを使用できます。時間設定は、週/時間/分/秒/その他のリストです。次のようなパラメーターで設定します

42 * * * * /bin/execute/awesomescript.sh

これにより、毎時 42 分に何かが実行されます。このページには、基本的に逆流するという説明があります: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

のようなスクリプトもあります

42 9,12,15 * * * /bin/stuff/awesomestuff.sh

これは、9:42、12:42、および 15:42 に awesomestuff.sh を実行します。

于 2012-10-26T14:14:43.043 に答える