Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
anyservice [2010/03/11 10:09] – Downloads eingebaut 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 23: Zeile 22:
  
 <html> <html>
-<table border="0" cellpadding="0" cellspacing="0" width="50%" style="background-color:transparent"><tr>+<table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:transparent"><tr>
 <td><strong>DOWNLOAD:</strong></td> <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/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/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> </tr></table>
 </html> </html>
Zeile 34: Zeile 34:
  
 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 59: 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 zum kopieren:**+**Die Stapeldatei zum Kopieren (z.B. nach testservice.bat):**
 <code> <code>
 @echo off @echo off
-SET APPNAME="testservice" +SET APPNAME=testservice 
-SET SRVANY="c:\bin\instsrv.exe" +SET INSTSRV=c:\bin\instsrv.exe 
-SET INSTSRV="c:\bin\srvany.exe"+SET SRVANY=c:\bin\srvany.exe
 echo. echo.
 if "%1" == "stop" goto stop if "%1" == "stop" goto stop
-echo Einrichten des Service APPNAME+echo Einrichten des Service %APPNAME%
 echo ---------------------------------------------------------------------- echo ----------------------------------------------------------------------
-echo Anhalten und Deinstallieren mit dem Aufruf "'.$appname.' stop"+echo Anhalten und Deinstallieren mit dem Aufruf %APPNAME% stop
 echo Pfadangaben notfalls ergaenzen echo Pfadangaben notfalls ergaenzen
 echo. echo.
 echo Installieren des Service... echo Installieren des Service...
-"INSTSRV" "APPNAME" "SRVANY"+"%INSTSRV%" "%APPNAME%" "%SRVANY%"
 echo. echo.
 echo Installieren der Registry-Werte... echo Installieren der Registry-Werte...
-regedit "APPNAME.reg"+regedit "%APPNAME%.reg"
 echo. echo.
 echo Starten des Service... echo Starten des Service...
-net start "APPNAME"+net start "%APPNAME%"
 goto ende goto ende
 :stop :stop
-echo Anhalten und Deinstallieren des Service APPNAME+echo Anhalten und Deinstallieren des Service %APPNAME%
 echo ---------------------------------------------------------------------- echo ----------------------------------------------------------------------
 echo Stoppen des Service... echo Stoppen des Service...
-net stop "APPNAME"+net stop "%APPNAME%"
 echo. echo.
 echo Deinstallieren des Service und der Registry-Werte... echo Deinstallieren des Service und der Registry-Werte...
-"INSTSRV" "APPNAME" remove+"%INSTSRV%" "%APPNAME%" remove
 :ende :ende
 echo. echo.
 echo *** Fertig *** echo *** Fertig ***
 echo. echo.
-pause 
 </code> </code>
 +
 +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.
 +
 \\ \\
-**Die zugehörige Registry-Datei:**+ 
 +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+REGEDIT4 (1. Zeile bei Windows XP) 
 +Windows Registry Editor Version 5.00  (1. Zeile bei Windows 7)
  
-[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\$appname\\Parameters] +[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\testservice\Parameters] 
-"Application"="$application+"Application"="c:\\bin\\test.bat
-"AppDirectory"="$appdir+"AppDirectory"="c:\\bin
-"AppParameters"="$parameters)"+"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 losWenn 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>
  
-<code>net start MyService</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.
  
-im Beispiel:+\\
  
-<code>net start POP3service</code>+===== 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>testservice</code> 
 + 
 +Sie können mit dem folgenden Kommando den Service auch manuell starten, nachdem er wie in Schritt 1 installiert wurde: 
 + 
 +<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.
  
 \\ \\
QR-Code
QR-Code Windows - Programme als Services starten (erstellt für aktuelle Seite)