Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
anyservice [2010/03/10 16:26] – angelegt bushanyservice [2010/03/11 13:37] 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 NT mitbringen.
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/dokumente/Binaries/srvany/at_download/file" target="_blank">srvany.exe</a></strong></td> 
 +<td><strong><a href="https://portal.uni-freiburg.de/rz/inhalt/dokumente/Binaries/instsrv/at_download/file" target="_blank">instsrv.exe</a></strong></td> 
 +<td><strong><a href="https://portal.uni-freiburg.de/rz/inhalt/dokumente/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 55:
 ===== 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 203:
 \\ \\
  
- +{{tag>windows}}
  
  
QR-Code
QR-Code Windows - Programme als Services starten (erstellt für aktuelle Seite)