2012-10-23 8 views
10

ブート、スクリーンセーバー、リモートコントロールなどの特定のイベントでレシーバーとテレビの電源を制御するためのスクリプトがあります。これらのうちの1つはログイン時に実行されますが、マシンの電源を入れる予定のときにスクリプトを実行したくないことがあります。私は起動アプリケーションの実行中にブランキング= 0の場合、イベントを無視するロジックを持っているので、ブートまたはシャットダウン中にirを送信しません。 cronを使用してこれをどのように達成できますか?これらのイベントは起動アプリケーションの前に発生するため、私は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 

(LIRCのinit.dスクリプトと画面の状態変化の一環として、シャットダウン時に呼び出される)sysoff.sh

#!/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 
+3

のようなスクリプトでもあります私はうそをつくつもりではない、これはかなり印象的です!あなたの設定に関する詳細を共有することができますか? –

+0

しかし、そこにはたくさんのことがあります。私はここにそれを置く場所があるとは確信していません。たぶん私はubuntuフォーラムにそれを投稿してリンクします。 – gilson585

+3

XMLファイルを使用して、いつ実行しないかをスケジュールすることができます。スクリプトはそれをプルーズすることができ、ロジックゲート(if)を使ってコントロールとして使用します。 –

答えて

-1

ああ。少なくとも、今は2つのスクリプトを使うことができます。時間設定は、週/時間/分/秒/などのリストです。

このようなパラメータを設定すると、1時間ごとに42分に何かが実行されます。このページには、私は基本的に逆流されるだろう説明があります。http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

42 9,12,15 * * * /bin/stuff/awesomestuff.sh 
9時42分でawesomestuff.shを行います

、12時42分、午後03時42分と