Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
Skrypt dla laika. http://forum.freesco.pl/viewtopic.php?f=24&t=12201 |
Strona 1 z 1 |
Autor: | Neron-ek [ wtorek, 25 kwietnia 2006, 07:10 ] |
Tytuł: | Skrypt dla laika. |
Witam. Przegladnolem kilka skryptów ale niestety mając niewielką wiedze na temat pisania skryptów moje próby przerobienia kilku nie przynoisły zadnego rezultatu, wiec zwracam sie do fachowcow. Potrzebuję prosty skrypt który uruchamia polecenie xxx i w otrzymanym komunikacie wyszukuje podanego ciągu znakow yyzz. Jeśli dany ciag znakow znajdzie to end jeśli nie to kiluje proces vvv i uruchamia go ponownie. Pozdrawiam i z góry dziekuje. |
Autor: | Mis' [ wtorek, 25 kwietnia 2006, 09:29 ] |
Tytuł: | Re: Skrypt dla laika. |
Neron-ek pisze: Potrzebuję prosty skrypt który uruchamia polecenie xxx i w otrzymanym komunikacie wyszukuje podanego ciągu znakow yyzz. Jeśli dany ciag znakow znajdzie to end jeśli nie to kiluje proces vvv i uruchamia go ponownie.
Pozdrawiam i z góry dziekuje. #!/bin/sh /scieżka/do/xxx | grep yyzz if [ $? = 0 ]; then echo "Znalazłem yyzz. Kończę!" exit 0 else echo "Nie znalazłem yyzz. Restartuję vvv." killall vvv && /sciezka/do/vvv if [ $? = 0 ]; then echo "vvv zrestartowane. Kończę." exit 0 else echo "Nie udało się zrestartować vvv. Kończę" exit 1 fi fi 1. można to jeszcze uprościć 2. zabijanie procesu to nie jest najbardziej elegancka metoda, poza tym nie podałeś czy vvv to nazwa czy numer procesu, jesli nazwa to używasz killall, jeśli numer procesu to używasz kill. 3. podobnie jak w pkt 2 - nie podałes jak uruchamiasz proces vvv więc przyjąłem, że to jest jakiś wykonywalny plik na dysku. 4. echa oczywiście możesz wywalić. 5.powyżej masz sprawdzanie czy vvv został zabity i czy się uruchomił - program zakończony sukcesem zazwyczaj zwraca kod błędu ($?) 0 (zero), zakończony błędem zwraca wartość $? różną od zera. |
Autor: | TheL [ piątek, 5 maja 2006, 10:18 ] |
Tytuł: | |
czyli z deamonami bedzie tak: ? #!/bin/sh /scieżka/do/xxx start | grep yyzz if [ $? = 0 ]; then echo "Znalazłem yyzz. Kończę!" exit 0 else echo "Nie znalazłem yyzz. Restartuję xxx." /scieżka/do/xxx restart if [ $? = 0 ]; then echo "xxx zrestartowane. Kończę." exit 0 else echo "Nie udało się zrestartować xxx. Kończę" exit 1 fi fi |
Autor: | Mis' [ piątek, 5 maja 2006, 11:06 ] |
Tytuł: | |
TheL pisze: czyli z deamonami bedzie tak: ?
teoretycznie tak. W praktyce też powinno zadziałać. Jednak ja bym dokładnie sprawdził kody błędu po wykonaniu /etc/rc.d/xxx restart |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |