Natrag   Forum.hr > Informatička tehnologija > Za napredne korisnike > Linux, UNIX i ostali unixoidi

Linux, UNIX i ostali unixoidi Open source OS-ovi i sve o njima

Odgovor
 
Tematski alati Opcije prikaza
Old 12.02.2015., 17:41   #1
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!
sula21 is offline  
Odgovori s citatom
Old 12.02.2015., 17:46   #2
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
UrchinStar47 is offline  
Odgovori s citatom
Old 12.02.2015., 21:34   #3
Quote:
UrchinStar47 kaže: Pogledaj post
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.
sula21 is offline  
Odgovori s citatom
Old 12.02.2015., 22:11   #4
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
UrchinStar47 is offline  
Odgovori s citatom
Old 13.02.2015., 16:22   #5
Quote:
UrchinStar47 kaže: Pogledaj post
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.
sula21 is offline  
Odgovori s citatom
Odgovor


Tematski alati
Opcije prikaza

Kreni na podforum




Sva vremena su GMT +2. Trenutno vrijeme je: 16:47.