Aby uruchomić jedną aplikację, należy uruchomić plik wsadowy (który wykonuje takie czynności, jak uruchamianie Jetty, wyświetlanie dzienników na żywo itp.). Aplikacja będzie działać tylko wtedy, gdy ten plik wsadowy jest uruchomiony. Dlatego jestem zmuszony uruchomić ten plik wsadowy i nie wylogowywać się z serwera Windows.
Czy ten plik wsadowy można uruchomić jako usługę? Eksperymentuję z jedną z sugestii z podobnego pytania .
windows
windows-services
batch-file
publicRavi
źródło
źródło
Odpowiedzi:
NSSM jest całkowicie darmowy i niezwykle łatwy, uruchamia wiersz poleceń / terminal jako administrator:
pojawi się okno dialogowe, w którym możesz wybrać, gdzie jest plik, który chcesz uruchomić.
odinstalować
źródło
nssm
wszystkich niezbędnych argumentów na wejściu, aby uniknąć wprowadzania danych w wyskakującym okienku - próbuję zautomatyzować ten proces?Dlaczego po prostu nie skonfigurować go jako zaplanowanego zadania, które ma być uruchamiane przy uruchomieniu?
źródło
Do tego celu służy wbudowane cmd systemu Windows: sc create . Nie tak wyszukane jak nssm, ale nie musisz pobierać dodatkowego oprogramowania.
Uwaga
=
źródło
Nie ma potrzeby dodatkowego oprogramowania. Użyj harmonogramu zadań -> utwórz zadanie -> ukryte. Pole wyboru ukrywania znajduje się w lewym dolnym rogu. Ustaw zadanie, które ma być uruchamiane przy logowaniu (lub w jakimkolwiek innym stanie) i wybierz zadanie na karcie Akcje. Uruchamianie go w ukryciu zapewnia ciche działanie zadania w tle, podobnie jak usługa.
Zauważ, że musisz także ustawić program tak, aby działał „niezależnie od tego, czy użytkownik jest zalogowany, czy nie”, w przeciwnym razie program będzie nadal działał na pierwszym planie.
źródło
Jak mówi Doug Currie, użyj RunAsService.
Z mojego wcześniejszego doświadczenia musisz pamiętać, że usługa, którą generujesz, będzie
nie jestem pewien, czy ostatnia nadal obowiązuje ... to była jedna wielka nocna klacz w projekcie, nad którym pracowałem jakiś czas temu.
źródło
Chociaż nie jest darmowy (ale 39 USD), FireDaemon działał dla mnie tak dobrze, że muszę go polecić. Uruchomi plik wsadowy, ale ma mnóstwo dodatkowych i bardzo przydatnych funkcji, takich jak planowanie, monitorowanie serwisowania, instalacja usług oparta na GUI lub XML, zależności, zmienne środowiskowe i zarządzanie dziennikami.
Zacząłem używać FireDaemon do uruchamiania serwerów aplikacji JBoss ( run.bat ), ale wkrótce potem zdałem sobie sprawę, że bogactwo możliwości konfiguracyjnych FireDaemon pozwoliło mi porzucić plik wsadowy i odtworzyć intencję jego poleceń w definicji usługi FireDaemon.
Istnieje również SUPER FireDaemon o nazwie Trinity, na który możesz chcieć spojrzeć, jeśli masz dużą liczbę serwerów Windows, na których zarządzasz tą usługą (lub technicznie każdą usługą).
źródło
W systemie Windows 2019 Server możesz uruchomić serwer Java Minecraft za pomocą następujących poleceń:
sc create minecraft-server DisplayName = "minecraft-server" binpath = "cmd.exe /CC:\Users\Administrator\Desktop\rungui1151.lnk" type = own start = auto
Plik .lnk to standardowy skrót systemu Windows do pliku wsadowego.
--- Rozpoczyna się plik .bat ---
java -Xmx40960M -Xms40960M -d64 -jar minecraft_server.1.15.1.jar
--- .bat kończy się plik ---
Wszystko to dlatego, że:
usługa nie wie, jak uruchomić się w folderze,
cmd.exe nie wie, jak uruchomić w folderze
Uruchomienie usługi spowoduje błąd „w odpowiednim czasie”, ale plik dziennika ujawnia, że serwer działa.
Jeśli chcesz wyłączyć serwer, po prostu przejdź do menedżera zadań i znajdź serwer java w procesach w tle i zakończ go lub zamknij serwer z gry za pomocą polecenia / stop lub dla innych programów / serwerów użyj metod odpowiednie dla serwera.
źródło
AlwaysUp z łatwością uruchomi twój plik wsadowy jako usługę. Jest podobny do FireDaemon (wspomnianego powyżej) i nie jest darmowy, ale bogaty zestaw funkcji może okazać się atutem w środowisku zawodowym.
Powodzenia!
źródło