Dies ist eine alte Version des Dokuments!


Windows - Programme als Services

Wir zeigen Ihnen hier, wie Sie ein beliebiges Programm als Service unter Windows starten.

Sie haben sich vielleicht gelegentlich schon gewünscht, ein x-beliebiges Programm unabhängig von der Anmeldung eines Benutzers im Hintergrund zu starten. Dieser Betrieb als Service verlangt vom Programmierer spezielle Vorkehrungen, damit ein Programm, das als Service laufen soll, in der dafür vorgeschriebenen Weise mit dem Betriebssystem interagiert.

Programme, die nicht für den Service-Betrieb geschrieben sind, können aber mit Hilfe und sozusagen „unter den Fittichen“ eines zusätzlichen Programmes, das selbst als Service programmiert ist, dennoch als solcher ablaufen. Microsoft stellt im Rahmen des NT Resource Kit ein derartiges Werkzeug zur Verfügung: srvany.exe.

Beachten Sie bitte:
  • Nicht jedes Programm kann und sollte als Service „missbraucht“ werden. Es eignen sich vor allem solche Programme, die für Service-Zwecke und für den Ablauf im Hintergrund gedacht sind. Als typisches Beispiel wird weiter unten das Programm stunnel.exe herangezogen.

Für Fehler auf Grund falscher Konfigurationsversuche können wir keine Haftung übernehmen.

  • Das Vorgehen bei der Installation ist nicht ganz trivial. Sie sollten deshalb einige Vorkenntnisse im Umgang mit Windows NT mitbringen.
  • Falls noch nicht vorhanden, müssen Sie zwei Programme aus dem Resource Kit auf Ihren PC laden und zur Ausführung bereitstellen. Die folgenden Seiten gehen davon aus, dass Sie beide Programme in dasselbe Verzeichnis speichern.
  • Jedes Programm, das auf diese Weise als Service ins System integriert werden soll, benötigt seinen eigenen srvany-Service.

Es liegt eine Lizenz für die Universität Freiburg vor. Deshalb können diese Programme nur nach Anmeldung mit einem gültigen Benutzerkonto des Rechenzentrums heruntergeladen werden.

DOWNLOAD: srvany.exe instsrv.exe

Jetzt geht's los!

Mit wenigen Zeilenkommandos im DOS-Fenster und einigen Mausklicks haben Sie die Arbeit erledigt. Ich stelle das Vorgehen hier am Beispiel des SSL-Programmes stunnel vor.

Bitte berücksichtigen: Falls im Pfad Leerzeichen auftauchen, muß die gesamte Pfadangabe in Anführungszeichen gesetzt werden. Beispiel: „c:\program files\anyprogram.exe“


Schritt 1: Installieren von SRVANY

Vorausgesetzt, Sie haben die beiden Programme srvany.exe und instsrv.exe im Verzeichnis c:\ntreskit untergebracht. Dann wechseln Sie am besten in dieses Verzeichnis und geben folgendes Kommando ein:

instsrv MyService c:\ntreskit\srvany.exe

Der Service-Name, in diesem Beispiel MyService kann von Ihnen frei vergeben werden. Einzige Einschränkung: Der Name darf im System nur einmal auftauchen. Er dient zur Identifizierung z.B. im Task Monitor des Systems und bei der Deinstallation des Service. Es muss auf jeden Fall der volle Pfadname für das Service-Programm angegeben werden.

Wenn Sie z.B. den Stunnel für den Zugang zum Server pop3 des Rechenzentrums als Service installieren wollen, könnte die Vorbereitung dafür folgendermaßen lauten:

instsrv POP3service c:\ntreskit\srvany.exe

Damit wird also srvany.exe unter dem Namen POP3service als Service registriert. Der Service startet automatisch, wenn das System hochfährt; er läuft als Systemprozess. Nach dieser Registrierung läuft der Service noch nicht!


Schritt 2: Konfiguration von SRVANY

Nun benötigt der Service (im Beispiel: POP3service) zusätzliche Angaben, welches Programm (im Beispiel: stunnel.exe) er in seiner Umgebung ablaufen lassen soll. Dabei sind nicht nur der Pfad der Programmdatei sondern sind auch die Kommandozeilen-Argumente in der Systemregistry einzutragen.

Der Pfad in der Registry-Datei lautet

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\

Bei Anwendung auf unser Beispiel:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\POP3service\

Nach der Installation im Schritt 1 wurde sofort dieser Schlüssel angelegt. Nun müssen Sie in diesem Registry-Pfad zunächst den Unterschlüssel Parameters und darin dann drei Stringparameter (REG_SZ) anlegen, die das Anwendungsprogramm und seine Parameter bezeichnen.

Um Ihnen die Arbeit etwas zu erleichtern, erstellen wir Ihnen hier beispielhaft eine Stapeldatei (.BAT) und eine Registry-Konfigurationsdatei (.REG). Beide können Sie markieren, kopieren und lokal speichern. Sobald Sie die Stapeldatei mit Doppelklick im Windows-Explorer aufrufen, wird Ihnen das manuelle Installieren des Dienstes abgenommen.
Die Stapeldatei zum kopieren:

@echo off
SET APPNAME="testservice"
SET SRVANY="c:\bin\instsrv.exe"
SET INSTSRV="c:\bin\srvany.exe"
echo.
if "%1" == "stop" goto stop
echo Einrichten des Service APPNAME
echo ----------------------------------------------------------------------
echo Anhalten und Deinstallieren mit dem Aufruf "'.$appname.' stop"
echo Pfadangaben notfalls ergaenzen
echo.
echo Installieren des Service...
"INSTSRV" "APPNAME" "SRVANY"
echo.
echo Installieren der Registry-Werte...
regedit "APPNAME.reg"
echo.
echo Starten des Service...
net start "APPNAME"
goto ende
:stop
echo Anhalten und Deinstallieren des Service APPNAME
echo ----------------------------------------------------------------------
echo Stoppen des Service...
net stop "APPNAME"
echo.
echo Deinstallieren des Service und der Registry-Werte...
"INSTSRV" "APPNAME" remove
:ende
echo.
echo *** Fertig ***
echo.
pause


Die zugehörige Registry-Datei:

REGEDIT4

[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\$appname\\Parameters]
"Application"="$application"
"AppDirectory"="$appdir"
"AppParameters"="$parameters)"


Schritt 3: Start der Anwendung als Service

Der neu festgelegte Service läuft beim nächsten Systemstart zum ersten mal los. Wenn Sie nicht so lange warten wollen, können Sie mit folgendem Kommando den Service sofort starten:

net start MyService

im Beispiel:

net start POP3service


Schritt 4: Stop bzw. Deinstallation des Service

Zunächst beenden Sie den Betrieb mit:

net stop MyService

Danach entfernen Sie den Service aus dem System mit:

instsrv MyService remove

Dabei verschwindet dann auch der gesamte Eintrag

  • *HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\ aus der Registry.
    ===== Anmerkung zum Acrobat Destiller =====
    Zitat eines Lesers: „Eine kleine Einstellung mußte ich ergänzen: Und zwar legt der Distiller (Acrobat 5) unter HKEY_CURRENT_USER/Software/ADOBE/Acrobat Distiller/5.0/WatchedFolders/ das überwachte Verzeichnis an. Will man den Dienst auf einem Server verwenden, muß man der Pfad zusätzlich unter HKEY_USERS/.DEFAULT/Software/Adobe/Acrobat Distiller/5.0/WatchedFolders/** eintragen.“



QR-Code
QR-Code Windows - Programme als Services starten (erstellt für aktuelle Seite)