Sziasztok,
Van egy szkriptem amit masodpercenkent szeretnek meghivni es daemonkent kellene futnia. A gond az, hogy a cron legkisebb egysege a perc, ami tulsagosan hosszu ido a feladatra. Arra gondoltam, hogy meghivom watch-csal masodpercenkent, a kimenetet elkuldom a /dev/null-ba. Ez szepen megy konzolbol, ill. daemonkent is, az apro bokkeno vele, ha beteszem az inditoszkriptbe, akkor az egesz megbolondul, figyelmen kivul hagyja a /dev/null atiranyitast, lemeszeli feketere a kepernyot es nem engedi tovabb az init-et.
Valami ilyesmi a szkript hivasa:
watch -n1 -t '/root/bin/check_it' > /dev/null
A kerdesem az lenne, hogy volna-e valamilyen intelligensebb megoldas ami kepes lenne masodpercenkent hivni a szkriptet, vagy esetleg en rontottam el valamit a fentiben?
Koszi elore is :-)
- 1072 megtekintés
Hozzászólások
az init scriptben a watch sor elotti sorba egy sleep 120 ?
- A hozzászóláshoz be kell jelentkezni
Koszi, az veletlenul volt elotte mivel mast is inditok vele. :-)
Amugy sleep 360 ;-)
Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.
- A hozzászóláshoz be kell jelentkezni
a scriptben egy while, ami sleep-el másodpercenként?
while 1
do
valami
meg még valami
sleep 1
done
???
- A hozzászóláshoz be kell jelentkezni
bah, ez nekem mer' nem jutott eszembe? :-)
Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.
- A hozzászóláshoz be kell jelentkezni
Ugyanaz de igy van benne egy kis exit status-okkal kapcsolatos perverzio:)
while sleep 1; do
valami
done
Persze most elbizonytalanodtam az `1' miert ad 0-as exit statust...
$ while 1; do echo igen; done
ksh: 1: not found
akkor megsem ugyanaz
====================
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.
- A hozzászóláshoz be kell jelentkezni
Pl. hatterben futtatas (&), stdin atiranyitasa.
- A hozzászóláshoz be kell jelentkezni
Meg mondjuk uj terminalon futtatva (open), nem a konzolon.
- A hozzászóláshoz be kell jelentkezni
Ez is jarhato ut, bar nem igazan szeretem ha a terminalra firkal egysmast. :-)
Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.
- A hozzászóláshoz be kell jelentkezni
& az termeszetesen meg van, csak a fenti valtozatban nem irtam oda. :-)
Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.
- A hozzászóláshoz be kell jelentkezni
Talan a sleep kisebb kvantumokban torteno meghivasa, pl.
sleep 0.1
es a
date +%s
megfelelo hivasa (kiegeszitve a shell $((...)) aritmetikajaval, while [[ ... ]] -val, stb) celravezeto" lehet. legalabbis en ezt webcam kepekhez, 5-10-15 masodperces, de kvazi pontos idozitesekne'l egesz jo hatekonysaggal tudom hasznalni (azaz lehet hogy a webcam 2-3-4 masodpercig is kesziti a ke'pet, attol fuggoen, amit nem tudunk, viszont az _garantalt_ ezaltal, hogy mondjuk egzaktul 10 masodperces periodusokkal keszuljenek a ke'pek).
A masik dolog az atiranyitas: a `>/dev/null` altalaban keve's, a teljes terminalt le kell csatolni:
parancs ... >&/dev/null </dev/null &
Azaz akkor is celszeru levalasztani az stdin-t es az stderr-t (az stdout-on felul), ha nem olvasol be semmit explicite a billentyuzetrol es nem irsz ki semmit sem az hiba-kimenetre. Ui., ashell innen fogja tudni, hogy mind3 megnyitott file-deszkriptort (0, 1, 2) letudhatja, azaz a teljes iranyitast atadhatja a child processznek. Ami nem utolso dolog...
A.
- A hozzászóláshoz be kell jelentkezni