Mam aplikację serwera, którą chcę uruchamiać za każdym razem, gdy komputer jest uruchomiony, i zwykle tak jest, z tym wyjątkiem, że czasami okaże się, że sam się zamknął.
Czy jest jakiś nietoperz lub skrypt, który mogę uruchomić, aby monitorować aplikację i uruchomić ją ponownie, aby ją zamknąć?
Odpowiedzi:
To nie zawsze działa (to zależy od tego, jak program się ładuje), ale zwykle możesz utworzyć plik wsadowy w następujący sposób:
Użyłem Notatnika jako przykładu.
Linie
to tylko opóźnienie (10 sekund), aby dać użytkownikowi szansę przerwania procesu przed jego ponownym uruchomieniem.
Linia
nie jest potrzebne, ale loguje się przy każdym zamknięciu programu do pliku, więc może być przydatne zdiagnozowanie problemu Błąd ErrorLevel może niewiele powiedzieć, ale program powinien zwrócić 0, jeśli zamknął się normalnie, a wartość non -zerowa wiadomość, jeśli nie ma
Uwaga: wspominasz, że program nic nie robi, jeśli jest już uruchomiony. Zazwyczaj oznacza to, że aplikacja się uruchamia, wykrywa, że kolejna kopia już działa i natychmiast się wyłącza. Jeśli tak jest, a program uruchomi się przed uruchomieniem tego pliku wsadowego, wówczas partia zapętli się i spróbuje uruchomić program co dziesięć sekund.
źródło
Na podstawie powyższych odpowiedzi sugeruję, aby umieścić to polecenie w pliku wsadowym, a następnie ustawić, aby plik wsadowy był uruchamiany jako zaplanowane zadanie co minutę. Nie ma z tym praktycznie żadnego narzutu i zapewnia, że proces zostanie określony niezależnie od tego, czy jesteś w pobliżu, aby zdać sobie sprawę, że został zatrzymany.
źródło
Chyba właściwa odpowiedź na to pytanie zależy od tego , dlaczego chcesz to zrobić. Czy próbujesz rozwiązać przypadkowe wyłączenie? Czy zapobiec przypadkowemu „złośliwemu” wyłączeniu przez użytkowników maszyny (np. Pracowników zamykających oprogramowanie monitorujące)? Zapobiegać poważnemu i wykwalifikowanemu złośliwemu atakowi? Czy próbujesz samodzielnie napisać złośliwe oprogramowanie (w takim razie odpuść ;-))?
Ponadto, jak wspomnieli inni komentatorzy, byłoby inaczej, gdybyś napisał usługę Windows (na przykład)
Osobiście prawdopodobnie zacznę od napisania drugiej aplikacji i uruchomienia jej w ten sam sposób. Mieć obie aplikacje skanowania dla siebie okresowo i ponownie w razie potrzeby - upewnij się, że zapewniają łatwy sposób dla aplikacji mają być zamknięte choć legalnie!
To powiedziawszy, i biorąc pod uwagę twój komentarz „czasami sam się zamknę”. NAPRAWDĘ zacznę od próby wyjaśnienia, dlaczego jest zamknięty ...
źródło
Możesz użyć programu o nazwie ReStartMe 2.0 [ Mirror ] robi dokładnie to:
Monitoruje procesy i uruchamia je ponownie, jeśli zostaną zamknięte.
źródło
to jest o wiele lepsze! to jest jakiś kod, którego używałem dla najmniejszego serwera gry, który powinien być zapisany w pliku .bat
źródło