Chcę używać pliku wykonywalnego (który ma tylko interfejs wiersza poleceń) jako usługi w systemie Windows 7.
Dodałem go do pomyślnie za pośrednictwem:
sc MySVC binPath = „C: Windows System32 Mój program.exe”
ale gdy spróbuję go uruchomić, to kończy się z błędem 1053.
Co ja robię źle?
Powiedziałeś „Sport tylko interfejs wiersza poleceń”, nie ma to znaczenia, usługa może być uruchomiona jako linia poleceń lub GUI (w zależności od limitów / zabezpieczeń).
Osobiście przyjrzałbym się bliżej aplikacji, jeśli loguje się jako użytkownik (na przykład usługa), czy ma potrzebne ścieżki i / lub czy na początku podajesz wszystkie niezbędne połączenia / argumenty?
źródło
Jeśli program, który próbujesz uruchomić jako usługa, wymaga wprowadzenia danych przez użytkownika, może to spowodować jego przekroczenie. Spróbuj wykonać program z wiersza poleceń z dokładnie tymi samymi flagami i przełącznikami, co usługa skonfigurowana do uruchamiania i zobacz, co się stanie. Możesz potrzebować dodatkowych flag / switch'ów, aby uruchamiał się bez wprowadzania danych przez użytkownika lub wprowadzał potok z innego programu / pliku przez wywołanie skryptowe do programu (plik wsadowy, skrypt powershell, itp.).
źródło
Używam trzech metod:
Polecenie 1.-SC, właśnie powiązane powyżej.
2.-
SrvAny
z Zestaw Windows Resource Kit .3.- AlwaysUp (nie za darmo :-(). Najlepsze do tej pory.
Aby nie powtarzać postów, tutaj są szczegóły:
źródło
Spójrz na NSSM - „Non-Sucking Service Manager” .
NSSM jest tworzony dokładnie w tym celu, a także do monitorowania i automatyczne ponowne uruchamianie takiej aplikacji konsoli. Jest używany np. przez SaltStack , i inni.
Jest licencjonowany jako domena publiczna aplikacja
źródło