Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5

Windows Serwer 2003 Skrypt który uruchomi program ponownie w przypadku jego crashu i braku odpowiedzi

#1
Witam czy jest coś takiego jak na linuxach, gdy proces padnie system automatycznie go wznowi ?

Dziękuje za zainteresowanie, proszę o szybką odpowiedź. Pozdrawiam.
#2
Element ukryty. Rejestracja zajmie tylko minutę!

Linux Tip: Auto Reboot after Kernel Panic
I thought I'd share this little known trick that I discovered while reading through parts of the linux kernel...

Linux has the ability to automatically reboot after a kernel panic, it goes as follows

Assuming you use lilo, edit the /etc/lilo.conf file
under your current (and future) boot images, add the line:
append="panic=15"

Then reload lilo by running /sbin/lilo

And next time you have a kernel panic (heaven forbid!) it should reboot after 15 seconds!
#3
Fajnie ale tamto jest na linuxa, chyba że ja czegoś nie doczytałem
#4
można ewentualnie skryptem sprawdzać cyklicznie, czy konkretny proces działa, i w razie wykrycia jego braku, uruchomić go.
#5
Tak właśnie o to chodzi tylko jakim? Skrypt pewnie z basika tylko nie mogę go znaleźć a sam raczej nie napisze.
#6
Nie trzeba VB.

Kod:
tasklist /fi "status ne running" /fi "imagename eq twojproces.exe" > %temp%\processtatus.txt
for /f "tokens=1* delims=:" %i in (%temp%\processtatus.txt) do @if %i==INFORMACJA start twojproces.exe

Wrzuć to do harmonogramu by sie odpalało co np. 5 minut z prawami usera, który ma uruchamiac ten proces. Powinno działać.
#7
w ścieżce uruchom tak?

Cytat:Mam cały harmonogram, tworzę nowy wpis i nie wiem gdzie mam dopisać to:
tasklist /fi status ne running /fi imagename eq E:\Counter-Strike\start.bat > %temp%\processtatus.txt for /f tokens=1* delims=: %i in (%temp%\processtatus.txt) do @if %i==INFORMACJA start E:\Counter-Strike\start.bat
nie wiem czy dobry wpis dałem
#8
Zrobiłem byczka w kodzie... ma być:
Kod:
tasklist /fi "status eq running" /fi "imagename eq twojproces.exe" > %temp%\processtatus.txt
for /f "tokens=1* delims=:" %%i in (%temp%\processtatus.txt) do @if %%i==INFORMACJA start twojproces.exe

Wklejasz to do pliku skryptu, np. sprawdzanie_procesu.bat, wrzucasz go tam, gdzie użytkownik uruchamiający go z harmonogramu ma dostęp, uruchamiasz harmonogram by odpalał ten skrypt co 5 minut i po sprawie.
Jezeli proces, który sprawdzasz, nie znajduje się w ścieżce PATH, musisz wpisać pełną ścieżkę do niego po komencie 'start' (I TYLKO TAM! Ściezki nie podaje się w poleceniu tasklist, a jedynie nazwię pliku procesu plus rozszerzenie).

Edit.:
Mozna skrócić skrypt do jednej komendy (bez uzywania pliku tymczasowego jako pośrednika):
Kod:
for /f "tokens=1* delims=:" %%i in ('tasklist /fi "status eq running" /fi "imagename eq twojproces.exe"') do @if %%i==INFORMACJA start twojproces.exe
#9
Nie chce uruchomić tego pliku wsadowego. Tzn uruchamia twój, ale twój nie uruchamia dalszego.

Twój kod:
Cytat:tasklist /fi "status eq running" /fi "imagename eq twojproces.exe" > %temp%\processtatus.txt
for /f "tokens=1* delims=:" %%i in (%temp%\processtatus.txt) do @if %%i==INFORMACJA start twojproces.exe

Ścieżka do mojego pliku:
Cytat:E:\Counter-Strike\start.bat

Twój kod z dodaniem ścieżki po start do mojego pliku:
Cytat:tasklist /fi "status eq running" /fi "imagename eq start.bat" > %temp%\processtatus.txt
for /f "tokens=1* delims=:" %%i in (%temp%\processtatus.txt) do @if %%i==INFORMACJA start E:\Counter-Strike\start.bat

Czy coś ominąłem ?
#10
Co to jest start.bat? Jakiś twój własny skrypt, który ma działać non-stop? Pliki skryptów nie sa procesami - nie możesz testować ich obecności w pamięci. Musisz się zdecydować na jakiś proces, który twój start.bat uruchamia.
#11
Wybacz ale mi to nie działa, nie uruchamia mi się ten drugi proces.

Mój plik start.bat zawiera parametry rozruchowe serwera, tak by był on odpalony w konsoli.
Cytat:start /high E:/Counter-Strike/hlds.exe -console -game cstrike -console -master +map de_dust2 +maxplayers 16 +port 27016 +exec server.cfg
#12
W takim razie proste - sprawdzaj obecność procesu hlds.exe.
A jeszcze lepiej nie uruchamiaj swojego skryptu z mojego skryptu, tylko od razu serwer CSa wg Twojego skryptu. Czyli:
Kod:
for /f "tokens=1* delims=:" %%i in ('tasklist /fi "status eq running" /fi "imagename eq hlds.exe"') do @if %%i==INFORMACJA start /high E:/Counter-Strike/hlds.exe -console -game cstrike -console -master +map de_dust2 +maxplayers 16 +port 27016 +exec server.cfg
To do harmonogramu i wio.
Podejrzewam, że hlds.exe z parametrami musi byc uruchomiony z katalogu CSa, więc przed poleceniem 'for' daj polecenia
Kod:
e:
cd e:/Counter-Strike/
#13
Zrobiłem kolejny plik .bat lecz tak jak było to wcześniej uruchamiając go włączy się po czym wygasa, nie ma żadnej reakcji.

Może to troszkę inaczej powinno być?

P.S dziękuje za wytrwałość.
#14
wpisz na koniec skryptu polecenie pause, uruchom i sprawdź gdzie i dlaczego się wysypuje.
Czy serwer CSa nie jest aby uruchomiony (proces hlds.exe)? Wtedy skryt zachowa się tak jak opisujesz, co jest jak najbardziej oczekiwaną reakcją.
#15
Nawet po dopisaniu pausy na końcu konsola znika. Coś musi być z tym skryptem nie tak podczas jego wykonywania konsola się zamyka samoistnie.
Sprawdź u siebie czy możesz nim uruchomić jakiś pliczek w harmonogramie.

P.S Chyba, że ten kod działa tylko na systemie Win serv,; testuje aktualnie na Win XP.
#16
Cytat:P.S Chyba, że ten kod działa tylko na systemie Win serv,; testuje aktualnie na Win XP.

Aaa, to trzeba było mówić od razu. Tasklist nie działa tak samo na W2k3 jak na XP, a dokładnie rzecz biorąc XPkowy tasklist jest zubożony o właśnie filtrowanie procesów (mimo że help wskazuje, że te funkcje sa zaimplementowane). Musisz robić testy na W2k3 lub przerzucić tasklist.exe z W2k3 na XP.

Jeżeli masz mimo to problemy ze znikającym okienkiem, wykonaj polecenia ze skryptu w cmd, przy czym pamiętać trzeba, że polecenia 'for' ma trochę inna budowę gdy uruchamiamy go ręcznie, a inną, gdy ze skryptu. Chodzi o definicje zmiennych: definiuje się je jako %%i itd. gdy uruchamiamy ze skryptu, a %i, gdy ręcznie z cmd.
#17
Możesz także zmodyfikować plik start.bat
Kod:
@echo off
:L
start /wait /high E:/Counter-Strike/hlds.exe -console -game cstrike -console -master +map de_dust2 +maxplayers 16 +port 27016 +exec server.cfg
goto L
  


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Windows XP Skrypt kasujący wszystkie ustawienia i historę IE Internet Explorera przy starcie topper 1 608 25.02.2011 21:04
Ostatni post: Krizz
  Skrypt wykrywający lewe podłączenie przez proxy w wewnętrznej sieci firmowej cracof 0 273 22.02.2010 13:31
Ostatni post: cracof
  Windows XP Zmapowany dysk niedostępny dla programów po zamknięciu serwera - skrypt fazan123 4 624 18.02.2010 16:11
Ostatni post: Krizz
  Skrypt uruchamiany co 15 minut... T-1000 2 525 18.02.2010 15:39
Ostatni post: T-1000
  Windows XP Identyfikacja uruchomionego procesu na komputerze w grupie roboczej - jaki skrypt? mimimi 1 410 22.06.2009 18:45
Ostatni post: Krizz
  Windows XP Skrypt z poleceniem ping mikee 6 2,067 01.08.2008 19:38
Ostatni post: Krizz
  Windows XP skrypt logowania rebe83 0 505 04.02.2007 20:11
Ostatni post: rebe83
  Windows XP Jak napisac nastepujacy plik wsadowy badz skrypt? art12345 5 596 11.11.2004 14:07
Ostatni post: art12345
  Windows 9x skrypt do automatycznego otwierania i zamykania okien Krizz 11 1,124 21.09.2004 14:19
Ostatni post: Krizz

Skocz do:


Użytkownicy przeglądający ten wątek:
1 gości