Linux, UNIX i ostali unixoidi Open source OS-ovi i sve o njima |
|
12.02.2015., 17:41
|
#1
|
Registrirani korisnik
Registracija: Aug 2010.
Postova: 11
|
Busybox, cron, skriptiranje
Imam Ubiquitiev uredjaj za kontrolu AC uređaja (mPower) koji radi na busyboxu. Problem je što uređaj ne radi kako bi trebao odnosno ja očekujem te je potrebno dodatno manualno podešavanje.
Ukratko potrebno mi je da uređaj nakon reboota odvrti naredbu "echo 0 > /proc/power/relay1" nekoliko puta (recimo 3 puta unutar tri minute) te nakon toga ta se naredba prestane izvršavati.
Na Ubiquitievom forumu receno je da se za sve dodatne kontrole editira system.cfg te kroz njega izvrsi cron job. Tako sam unutar /tmp/ editirao system.cfg i dodao ovakav cron job koji radi ono sto treba, a to je gasi Output1 izlaz.
cron.1.job.1.cmd=echo 0 > /proc/power/output1
cron.1.job.1.status=enabled
cron.1.status=enabled
cron.status=enabled
Problem je to što se navedni job stalno izvršava, a ideja je da se odvrti recimo 3 puta, svake minute i nakon toga prekine.
Probao sam i napraviti drugi cron job koji bi nakon 3 minute "ubio" ovaj prvi job, ali bez uspjeha.
Dakle, konkretno pitanje bi bilo kako u busyboxu napraviti job koji ce se odvrtiti odredjeni broj puta. Ili kako sa drugim cron jobom ubiti onaj prvi?
Hvala svima na pomoci!
|
|
|
12.02.2015., 17:46
|
#2
|
Registrirani korisnik
Registracija: Jun 2006.
Postova: 4,471
|
Napravi cron koji samo jednom pri pokretanju pokrece skriptu koja to radi.
__________________
Our imagination is stretched to the utmost, not, as in fiction, to imagine things which are not really there, but just to comprehend those things which are there.
--Richard P. Feynman
|
|
|
12.02.2015., 21:34
|
#3
|
Registrirani korisnik
Registracija: Aug 2010.
Postova: 11
|
Quote:
UrchinStar47 kaže:
Napravi cron koji samo jednom pri pokretanju pokrece skriptu koja to radi.
|
Jel to moguće? Mislim "linuxaš" sam tek tjedan dana pa pitam
Probao sam sa:
cron.1.job.1.cmd=@reboot echo 0 > /proc/power/output1 - ne radi
i sa cron.1.job.1.schedule=@reboot - također ne radi.
|
|
|
12.02.2015., 22:11
|
#4
|
Registrirani korisnik
Registracija: Jun 2006.
Postova: 4,471
|
Kod:
#!/bin/sh
echo 0 > /proc/power/relay1
sleep 60
echo 0 > /proc/power/relay1
sleep 60
echo 0 > /proc/power/relay1
Evo ti skripta koja doslovno radi ono sto zelis. To spremis u obicni tekstualni file, ucinis ga izvrsivim (man chmod), i pokrenes cronom.
__________________
Our imagination is stretched to the utmost, not, as in fiction, to imagine things which are not really there, but just to comprehend those things which are there.
--Richard P. Feynman
|
|
|
13.02.2015., 16:22
|
#5
|
Registrirani korisnik
Registracija: Aug 2010.
Postova: 11
|
Quote:
UrchinStar47 kaže:
Kod:
#!/bin/sh
echo 0 > /proc/power/relay1
sleep 60
echo 0 > /proc/power/relay1
sleep 60
echo 0 > /proc/power/relay1
Evo ti skripta koja doslovno radi ono sto zelis. To spremis u obicni tekstualni file, ucinis ga izvrsivim (man chmod), i pokrenes cronom.
|
hvala na skripti.. napravio sam kako si rekao (file sa nazivom cronoff unutar /var/etc/persistent/ te mu dodao izvrsna prava sa chmod a+x). Ali opet ne mogu dobiti da se izvrši samo jednom.
Kada kreiram cron job bez schedula on radi što treba, ali se stalno vrti. Tako da se dešava kada ručno upalim relay nakon recimo 10 minuta, on ga opet ugasi jer je skripta u loopu.
Kada kreiram job sa schedule opcijom za izvršenje samo jedanput nakon reboota (cron.1.job.1.schedule=@reboot) onda uopće ne pokrene skriptu.
|
|
|
|
Tematski alati |
|
Opcije prikaza |
Linearni mod
|
Sva vremena su GMT +2. Trenutno vrijeme je: 16:47.
|
|
|
|