Mam usługę Windows, która niespodziewanie wychodzi co kilka dni. Czy istnieje prosty sposób monitorowania, aby upewnić się, że zostanie szybko zrestartowany, jeśli ulegnie awarii?
windows
windows-service
Liam
źródło
źródło
SC failure w3svc command= "MyBatchFile.cmd"
powinien on znajdować się w ścieżce lub C: \ Windows \ System32. Możesz umieścić go w dowolnym katalogu, jeśli użyjesz pełnej ścieżki, tj.SC failure w3svc command= "c:\Stuff\MyBatchFile.cmd"
Otwórz Services.msc, kliknij dwukrotnie usługę, aby otworzyć Właściwości usługi, znajduje się karta Odzyskiwanie, a te ustawienia powinny umożliwić ponowne uruchomienie usługi po awarii.
źródło
Spróbuj ustawić czas odzyskiwania na zero:
Odpowiednik wiersza poleceń:
SC failure YOUR_SERVICE_NAME reset= 0 actions= restart/0/restart/0/restart/0
W każdym razie czasami automatyczne odzyskiwanie nie działa poprawnie i zaleca się korzystanie z oprogramowania innych firm. Wygląda na to, że usługa z wdziękiem kończy pracę z kodem wyjścia 0 okien, nie próbuje go odzyskać.
źródło
Korzystam z ServiceKeeper na serwerze Windows 2008 na HostForLife.eu i działa bardzo dobrze. Wcześniej miałem recenzję na ServiceHawk, ale wolę używać ServiceKeeper dla łatwiejszego zarządzania i interfejsu.
źródło
Miałem podobny wymóg, aby uruchomić usługę, jeśli zostanie zatrzymana. Najprostszym rozwiązaniem, jakie myślałem, było wykonanie poniższego polecenia w harmonogramie zadań systemu Windows co 5 minut:
net start MyServiceName
To polecenie w zasadzie uruchomi usługę (jeśli zostanie zatrzymana) i nie będzie miało wpływu, jeśli usługa jest już uruchomiona.
źródło
Niedawno wdrożyłem opcję odzyskiwania, aby uruchomić skrypt PowerShell, który próbuje ponownie uruchomić usługę określoną liczbę razy i wysyła powiadomienie e-mail na zakończenie, to także.
Po kilku próbach (i pomimo wszystkich innych rzeczy, które widziałem) Konfiguracja pól na karcie odzyskiwania w usługach jest następująca:
Program: Powershell.exe
** Nie C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Powershell.exe
Parametry wiersza poleceń: -command "& {SomePath \ YourScript.ps1 '$ args [0]' '$ args [1]' '$ args [n]'}”
np .: -command "& {C: \ PowershellScripts \ ServicesRecovery.ps1„ Nazwa usługi ”}”
** Argenty $ to parametry, które zostaną przekazane do skryptu. Nie są wymagane.
oto skrypt PowerShell:
źródło
To była moja odpowiedź na podobny wątek. Mam nadzieję, że to pomaga ...
Możesz zaplanować prosty skrypt VBS, taki jak ten, aby okresowo uruchamiał usługę na komputerze w razie potrzeby.
źródło
Ktoś zadał podobne pytanie w Super User: Możesz zainstalować narzędzie, które monitoruje usługi Windows. Coś w rodzaju Service Hawk pomoże ci utrzymać usługi uruchomione lub pozwoli ci zaplanować automatyczne ponowne uruchomienie (być może w nocy), aby usługa działała sprawnie.
źródło