Wie führe ich einen Windows-Befehl als Dienst aus?

Wie führe ich einen Windows-Befehl als Dienst aus?

Ich verwende Windows 7. Ich führe diesen Befehl in einer Eingabeaufforderung aus, um einen Memcached-Server zu starten:

memcached.exe -d start

Ich möchte jedoch festlegen, dass dieser Befehl beim Neustart meines Computers automatisch ausgeführt wird. Wie richte ich das ein?

Antwort1

Wenn die Anwendung nicht auf die Schnittstelle zugreift, können Sie dies über den Taskplaner tun. Richten Sie die Anwendung so ein, dass sie beim Booten von einem Benutzerkonto ausgeführt wird, das über ausreichende Zugriffsrechte zum Ausführen des Programms verfügt.

Suchen Sie außerdem nach dem Windows 2003 Resource Kit. Darin befinden sich die beiden Programme srvany.exe und instsrv.exe, mit denen Sie aus einer App einen Dienst machen können. Auf Windows 7-Rechnern sollte das problemlos funktionieren.

Antwort2

Es gibt einige Ansätze.

Ich empfehle die Verwendung der Anwendung „Service Control“, da diese vollständig in das Bedienfeld services.msc integriert ist, sodass sie unter einem beliebigen Benutzer ausgeführt und automatisch mit dem System gestartet werden kann. Sie kann jedoch zu Ladezeitproblemen führen, daher ist der Start als „Automatisch (verzögert)“ möglicherweise eine gute Idee, um sicherzustellen, dass die erforderlichen Dienste bereits geladen wurden.

sc \\localhost create <newservicename> binpath= c:\path\to\service.exe

Der Taskplaner ist eine weitere gute Option – wie @DavidPostill vorgeschlagen hat – wenn das System die EXE nicht als Dienst erkennen muss. Der Taskplaner bietet viele gute Konfigurationsoptionen.

Einige Leute empfehlen alternative Service-Manager wie NSSM:http://nssm.cc/

verwandte Informationen