Strona 1 z 1

[+] Skrypt w bashu sprawdzający czy program jest uruchomiony

: 28 grudnia 2008, 14:19
autor: vixnadi
Witam.

Chcę napisać prosty skrypt, który będzie sprawdzał czy program jest uruchomiony, a jeżeli nie jest - będzie go uruchamiał na nowo.

Program przy problemach z siecią automatycznie się rozłącza i zamyka - stąd mój skrypt.

Próbowałem to zrobić poleceniem:

Kod: Zaznacz cały

ps -A | grep "program z komendami"
ale niestety grep wyświetla wtedy również swój proces, który także zawiera ten ciąg znaków i polecenie zawsze zwraca jakiś wynik.

Ma ktoś pomysł jak to rozwiązać?

: 28 grudnia 2008, 15:52
autor: tracerout

Kod: Zaznacz cały

ps aux | grep "program z komendami" | grep -v "grep"

: 28 grudnia 2008, 19:10
autor: vixnadi
O to chodziło. Wielkie podziękowania :-)

[ Dodano: 2008-12-28, 20:51 ]
A jeszcze zapytam o taka rzecz...
Chciałem cały skrypt uruchomic w cronie ale cron ma minimalna rozdzielczość 1 minute a przydało by sie zeby skrypt sie wykonywał co 10s a może i częściej żeby zapewnić płynność działania.

Da sie to jakoś zrobic?

: 30 grudnia 2008, 14:00
autor: snah
Pętla while true w bashu i sleep 10.

: 30 grudnia 2008, 15:03
autor: matiit
Nie bardziej elegancko by było gdyby program miał jakiś PID-file albo inny state? Bo co jeśli będzie kiedyś program co będzie zawierał w nazwie nazwę tego pożądanego programu? Może być problem...

: 02 stycznia 2009, 11:49
autor: vixnadi
Tak sie sklada, ze program nie ma mozliwosci zrobienia sobie pliku z pid. Chyba ze jest na to jakis niezalezny sposob bo faktycznie byłoby to bardziej eleganckie choc w takiej postaci chodzi dobrze. Niestety sposob z petla while mi sie nie podoba do konca, zostalem na cronie, sprawdza co minute i w praktyce wyglada na to, ze to w zupelnosci wystarcza.