Portál AbcLinuxu, 19. dubna 2024 17:31


Dotaz: Bash script pre kontrolu potrebnych demonov

7.7.2005 09:42 Peter
Bash script pre kontrolu potrebnych demonov
Přečteno: 151×
Odpovědět | Admin
Sem tam mi vypadne nejaky demon (z neznamich pricin). Chcel by som spravit nejaky check script a dat ho do cronu pustat napr. kazdu hodinu. Teoria scriptu by bola ale prax je na tom horsie. Cez ps -aux a grep si dam spravit vypis potrebneho demona (napr. ipop3d), nacitam vysledok do premenej cez if ho porovnam - ak sa tam nenachadza pustim ho ak sa nachadza koniec. Nedary sa mi nacitat vysledok z grepu do premennej. Poradi niekto? big thx vopred.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

elviin avatar 7.7.2005 10:11 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: Bash script pre kontrolu potrebnych demonov
Odpovědět | | Sbalit | Link | Blokovat | Admin
instance atermu a jeho jmeno:
ps --no-headers -eo pid,comm | grep aterm | awk '{print $2}'
ps --no-headers -eo comm,pid | grep aterm | awk '{print $1}'
7.7.2005 13:20 petr_p
Rozbalit Rozbalit vše Re: Bash script pre kontrolu potrebnych demonov
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takoveto reseni vetsinou funguje, ale neni zcela neprustrelne.

Pokud vam pobezi jiny proces, ktery se bude jmenovat ipop3d (napr. fork po pripojeni klienta, ale master proces -- ten, co posloucha na TCP portu -- uz nezije), tak nepoznate chybovy stav.

Lepsi je kontrolovat PID demomna. Ale i tady muze byt problem, kdyz PID pretecou a zrovna vam demon umre misto nej dostane jeho PID novy proces.

Uplne nejlepsi je spoustet server bez odpojovani od terminalu a pres rouru si hlidat, jestli neumrel (rodic dostane signal SIGPIPE). Dokonce existuje specialni implementace initu, ktera toto umi.
7.7.2005 14:34 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Bash script pre kontrolu potrebnych demonov
Uplne nejlepsi je spoustet server bez odpojovani od terminalu

Uch, uch, k takovým věcem slouží deamontools, případně různé náhrady initu. V každém případě bych hlídal rodičovským procesem přes SIGCHLD/waitpid.
7.7.2005 16:05 petr_p
Rozbalit Rozbalit vše Re: Bash script pre kontrolu potrebnych demonov
Pravda, SIGCHLD uplne staci. Hlavni je, ze ten proces se nesmi demonizovat.
7.7.2005 15:53 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Bash script pre kontrolu potrebnych demonov
Uplne nejlepsi je spoustet server bez odpojovani od terminalu a pres rouru si hlidat, jestli neumrel (rodic dostane signal SIGPIPE).

Proč tak složitě? Když umře potomek, rodič dostane SIGCHLD…

7.7.2005 15:43 Peter
Rozbalit Rozbalit vše Re: dikes za reakcie
Odpovědět | | Sbalit | Link | Blokovat | Admin
...dikes za reakcie ale mne to moc nehovory. nepotrebujem profesionalne riesenie ale jednoduche. skusim to podla "elviin-a", az s toho nieco bude :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.