Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
anyservice [2010/03/10 16:26] – angelegt bushanyservice [2010/09/22 08:51] (aktuell) bush
Zeile 1: Zeile 1:
-====== Windows - Programme als Services ======+====== Windows - Programme als Services starten ======
  
 **Wir zeigen Ihnen hier, wie Sie ein beliebiges Programm als Service unter Windows starten.** **Wir zeigen Ihnen hier, wie Sie ein beliebiges Programm als Service unter Windows starten.**
Zeile 11: Zeile 11:
 **Beachten Sie bitte:** **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. +    * 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.\\ **Für Fehler auf Grund falscher Konfigurationsversuche können wir keine Haftung übernehmen.**
-      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.+    * Das Vorgehen bei der Installation ist nicht ganz trivial. Sie sollten deshalb einige Vorkenntnisse im Umgang mit Windows 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.     * 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.
Zeile 20: Zeile 19:
     * Jedes Programm, das auf diese Weise als Service ins System integriert werden soll, benötigt seinen eigenen srvany-Service.     * 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.</note>+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. 
 + 
 +<html> 
 +<table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:transparent"><tr> 
 +<td><strong>DOWNLOAD:</strong></td> 
 +<td><strong><a href="https://portal.uni-freiburg.de/rz/inhalt/pw/Binaries/srvany/at_download/file" target="_blank">srvany.exe</a></strong></td> 
 +<td><strong><a href="https://portal.uni-freiburg.de/rz/inhalt/pw/Binaries/instsrv/at_download/file" target="_blank">instsrv.exe</a></strong></td> 
 +<td><strong><a href="https://portal.uni-freiburg.de/rz/inhalt/pw/Binaries/testservice/at_download/file" target="_blank">Beispieldateien (ZIP)</a></strong> aus dieser Seite</td> 
 +</tr></table> 
 +</html> 
 +</note>
  
 **Jetzt geht's los!** **Jetzt geht's los!**
  
 Mit wenigen Zeilenkommandos im DOS-Fenster und einigen Mausklicks haben Sie die Arbeit erledigt. 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. +Bitte berücksichtigen: Falls im Pfad Leerzeichen auftauchen, muß die gesamte Pfadangabe in Anführungszeichen gesetzt werden.\\ 
-Beispiel: "c:\program files\anyprogram.exe"+Beispiel: <code>"c:\program files\anyprogram.exe"</code>
  
 \\ \\
 +
 ===== Schritt 1: Installieren von SRVANY ===== ===== Schritt 1: Installieren von SRVANY =====
  
-Vorausgesetzt, Sie haben die beiden Programme srvany.exe und instsrv.exe im Verzeichnis c:\ntreskit untergebracht.+Vorausgesetzt, Sie haben die beiden Programme srvany.exe und instsrv.exe in einem beliebigen Verzeichnis Ihrer Wahl  (z.b. c:\bin) untergebracht.
 Dann wechseln Sie am besten in dieses Verzeichnis und geben folgendes Kommando ein: Dann wechseln Sie am besten in dieses Verzeichnis und geben folgendes Kommando ein:
-<code>instsrv MyService c:\ntreskit\srvany.exe</code>+<code>instsrv testservice c:\bin\srvany.exe</code>
  
-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.+Der **Service-Name**, in diesem Beispiel **testservice** 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: +Damit wird also srvany.exe unter dem Namen testservice als Service registriert.
-<code>instsrv POP3service c:\ntreskit\srvany.exe</code> +
- +
-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. Der Service startet automatisch, wenn das System hochfährt; er läuft als Systemprozess.
 Nach dieser Registrierung läuft der Service noch nicht! Nach dieser Registrierung läuft der Service noch nicht!
Zeile 50: Zeile 56:
 ===== Schritt 2: Konfiguration von SRVANY ===== ===== 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.+Nun benötigt der Service (im Beispiel: testservice) zusätzliche Angaben, welches Programm (im Beispiel: testservice) 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 +Der Pfad in der Registry-Datei lautet für unser Beispiel: 
-<code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\</code> +<code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\testservice\</code>
- +
-Bei Anwendung auf unser Beispiel: +
-<code>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\POP3service\</code>+
  
 Nach der Installation im Schritt 1 wurde sofort dieser Schlüssel angelegt. 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. 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.+Um Ihnen die Arbeit etwas zu erleichtern, erstellen wir Ihnen hier beispielhaft eine Stapeldatei (.BAT) und eine Registry-Konfigurationsdatei (.REG) zu einer Testanwendung test.bat. Alle drei können Sie markieren, kopieren und lokal speichern, um damit zu testenWenn Sie die Stapeldatei mit Doppelklick im Windows-Explorer aufrufen, wird Ihnen das manuelle Installieren des Dienstes abgenommen.
  
-Die Stapeldatei:+**Die Stapeldatei zum Kopieren (z.B. nach testservice.bat):**
 <code> <code>
 +@echo off
 +SET APPNAME=testservice
 +SET INSTSRV=c:\bin\instsrv.exe
 +SET SRVANY=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.
 </code> </code>
  
-Die zugehörige Registry-Datei:+Ersetzen Sie bei den Zeilen 
 + 
 +SET APPNAME=testservice\\ 
 +SET INSTSRV=c:\bin\instsrv.exe\\ 
 +SET SRVANY=c:\bin\srvany.exe\\ 
 + 
 +auf der rechten Seite der Zuweisung die Angaben nach Ihren Wünschen. 
 + 
 +\\ 
 + 
 +Dazu passend müssen Sie eine Konfigurationsdatei für die Registry anlegen, die nachfolgend für unser Beispiel formuliert ist. Nennen Sie die Datei (APPNAME).reg 
 + 
 +**Die zugehörige Registry-Datei zum Kopieren (z.B. nach testservice.reg):**
 <code> <code>
 +REGEDIT4 (1. Zeile bei Windows XP)
 +Windows Registry Editor Version 5.00  (1. Zeile bei Windows 7)
 +
 +[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\testservice\Parameters]
 +"Application"="c:\\bin\\test.bat"
 +"AppDirectory"="c:\\bin"
 +"AppParameters"="Mein Parameter"
 </code> </code>
 +
 +Je nach Betriebssystem-Version muss die erste Zeile umformuliert werden. Im obigen Beispiel sind zwei Versionen angegeben. Löschen sie die jeweils falsch Zeile aus der Datei (auch den Kommentar in Klammern!!!).
 +
 +In der Zeile, die mit "[HKEY_LOCAL_MACHINE" beginnt, müssen Sie ggf. den Servicenamen (hier testservice) durch den engültigen Namen ersetzen.
 +
 +Achten Sie auch darauf, dass bei den Parameterwerten das Trennzeichen '\' innerhalb eines Pfadnamens immer doppelt geschrieben wird.
  
 \\ \\
  
-===== Schritt 3: Start der Anwendung als Service =====+Und nun unsere Beispiel-Anwendung.  
 +Es handelt sich um ein DOS-Batch-Script und heißt hier test.bat.
  
-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:+**Die zugehörige Anwendung zum Kopieren (z.B. nach test.bat):** 
 +<code> 
 +@echo off 
 +echo. >>test.log 
 +echo ---------------------------------------->>test.log 
 +echo Mein Parameter lautet "%*" >>test.log 
 +echo. >>test.log 
 +dir c:\ >>test.log 
 +</code> 
 + 
 +Dieses kleine Script wird jedesmal, wenn der Service testservice startet, eine Meldung mit dem in der Registry gespeicherten Parameter "AppParameters" und danach das Verzeichnislisting von c:\ an die Datei test.log anhängen. 
 +test.log wächst also mit jedem Service-Start um die Ausgabedaten. 
 + 
 +\\ 
 + 
 +===== Schritt 3: Installation bzw. Start der Anwendung als Service ===== 
 + 
 +Der neu festgelegte Service wird im obigen Script sofort gestartet und läuft bei jedem Systemstart automatisch los. 
 + 
 +Die Installation des Service und der erste Start wird durch den einfachen Aufruf des Batch-Scriptes durchgeführt:
  
-<code>net start MyService</code>+<code>testservice</code>
  
-im Beispiel:+Sie können mit dem folgenden Kommando den Service auch manuell starten, nachdem er wie in Schritt 1 installiert wurde:
  
-<code>net start POP3service</code>+<code>net start testservice</code>
  
 \\ \\
  
 ===== Schritt 4: Stop bzw. Deinstallation des Service ===== ===== Schritt 4: Stop bzw. Deinstallation des Service =====
 +
 +**Die manuelle Variante:**
  
 Zunächst beenden Sie den Betrieb mit: Zunächst beenden Sie den Betrieb mit:
  
-<code>net stop MyService</code>+<code>net stop testservice</code>
  
 Danach entfernen Sie den Service aus dem System mit: Danach entfernen Sie den Service aus dem System mit:
  
-<code>instsrv MyService remove</code>+<code>instsrv testservice remove</code>
  
 Dabei verschwindet dann auch der gesamte Eintrag Dabei verschwindet dann auch der gesamte Eintrag
  
-    **HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\**+**HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\testservice\**
  
 aus der Registry. aus der Registry.
 +
 +\\
 +**Die Script-Variante:**
 +
 +Rufen Sie das Script, mit dem Sie den Service eingerichtet haben, mit dem Argument 'stop' auf:
 +
 +<code>testservice stop</code>
 +
 +Dann wird der Service gestoppt und aus dem System entfernt.
  
 \\ \\
Zeile 113: Zeile 204:
 \\ \\
  
- +{{tag>windows}}
  
  
QR-Code
QR-Code Windows - Programme als Services starten (erstellt für aktuelle Seite)