2012-10-23 30 views
10

Mam zatem kolekcję skryptów, które służą do kontrolowania mocy mojego odbiornika i telewizora podczas pewnych zdarzeń, takich jak rozruch, wygaszacz ekranu i sterowanie zdalne. Jedna z nich jest wykonywana podczas logowania, ale może nie chcę, aby uruchamiał skrypt, gdy planuje się uruchomienie komputera. Mam logikę, aby ignorować zdarzenia, jeśli blanked = 0 podczas uruchamiania aplikacji startowych, dlatego nie będzie wysyłał ir podczas uruchamiania lub zamykania systemu. Jak mogę to zrobić dzięki użyciu crona? Wybieram crona, ponieważ te zdarzenia mają miejsce przed uruchomieniem aplikacji. Cron jest niesamowity, ale o ile rozumiem, mogę uruchamiać go tylko przy starcie lub nie według harmonogramu. Muszę zakodować zmienną czasową, ale nie jestem pewien jak.Skrypt startowy Cron tylko w określonych porach dnia

syson.sh (tzw podczas logowania jako aplikacja ekran startowy i państwowej zmianie)

#!/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 (tzw podczas zamykania jako część skryptu init.d lirc i zmiany stanu ekranu)

#!/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 (watchdog wygaszacz ekranu, zwany podczas logowania)

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

Nie zamierzam nawet kłamać, to imponujące! Czy możesz podać więcej szczegółów na temat swojej konfiguracji? –

+0

Tak, ale jest w tym dużo i nie jestem pewien, czy to miejsce jest odpowiednie. Może opublikuję to na forum ubuntu i połączysz go. – gilson585

+3

Można spróbować kontrolować to za pomocą pliku XML, aby zaplanować, kiedy i kiedy nie należy uruchamiać? Skrypt może się przez to przepracować i użyć go jako kontrolki z bramką logiczną (jeśli). –

Odpowiedz

-1

Ah. Przynajmniej możesz teraz użyć dwóch skryptów. Ustawienie czasu to lista tygodni/godzin/minut/sekund/itd. Zostało to skonfigurowane za pomocą parametrów takich, jak:

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

W ten sposób uruchomi się co minutę 42 każdej godziny. Ta strona zawiera wyjaśnienie, że ja w zasadzie być regurgitating: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

Jest też skrypty jak

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

Który zrobi awesomestuff.sh na 9:42, 12:42, 15:42 i