Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
anyservice [2010/03/11 10:09] – Downloads eingebaut bush | anyservice [2010/03/11 13:37] – bush | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Windows - Programme als Services ====== | + | ====== Windows - Programme als Services |
**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 " | + | * Nicht jedes Programm kann und sollte als Service " |
- | | + | |
* 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: | ||
< | < | ||
- | <table border=" | + | <table border=" |
< | < | ||
< | < | ||
< | < | ||
+ | < | ||
</ | </ | ||
</ | </ | ||
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: | + | Bitte berücksichtigen: |
- | Beispiel: " | + | Beispiel: |
\\ | \\ | ||
===== Schritt 1: Installieren von SRVANY ===== | ===== Schritt 1: Installieren von SRVANY ===== | ||
- | Vorausgesetzt, | + | Vorausgesetzt, |
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: | ||
- | < | + | < |
- | Der **Service-Name**, | + | Der **Service-Name**, |
- | 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 |
- | < | + | |
- | + | ||
- | Damit wird also srvany.exe unter dem Namen POP3service | + | |
Der Service startet automatisch, | Der Service startet automatisch, | ||
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: | + | Nun benötigt der Service (im Beispiel: |
- | Der Pfad in der Registry-Datei lautet | + | Der Pfad in der Registry-Datei lautet |
- | < | + | < |
- | + | ||
- | Bei Anwendung auf unser Beispiel: | + | |
- | < | + | |
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, | + | Um Ihnen die Arbeit etwas zu erleichtern, |
- | \\ | + | |
- | **Die Stapeldatei zum kopieren:** | + | **Die Stapeldatei zum Kopieren (z.B. nach testservice.bat):** |
< | < | ||
@echo off | @echo off | ||
- | SET APPNAME="testservice" | + | SET APPNAME=testservice |
- | SET SRVANY="c: | + | SET INSTSRV=c: |
- | SET INSTSRV="c: | + | SET SRVANY=c: |
echo. | echo. | ||
if " | if " | ||
- | echo Einrichten des Service APPNAME | + | echo Einrichten des Service |
echo ---------------------------------------------------------------------- | echo ---------------------------------------------------------------------- | ||
- | echo Anhalten und Deinstallieren mit dem Aufruf | + | echo Anhalten und Deinstallieren mit dem Aufruf |
echo Pfadangaben notfalls ergaenzen | echo Pfadangaben notfalls ergaenzen | ||
echo. | echo. | ||
echo Installieren des Service... | echo Installieren des Service... | ||
- | " | + | "%INSTSRV%" "%APPNAME%" "%SRVANY%" |
echo. | echo. | ||
echo Installieren der Registry-Werte... | echo Installieren der Registry-Werte... | ||
- | regedit " | + | regedit "%APPNAME%.reg" |
echo. | echo. | ||
echo Starten des Service... | echo Starten des Service... | ||
- | net start " | + | net start "%APPNAME%" |
goto ende | goto ende | ||
:stop | :stop | ||
- | echo Anhalten und Deinstallieren des Service APPNAME | + | echo Anhalten und Deinstallieren des Service |
echo ---------------------------------------------------------------------- | echo ---------------------------------------------------------------------- | ||
echo Stoppen des Service... | echo Stoppen des Service... | ||
- | net stop " | + | net stop "%APPNAME%" |
echo. | echo. | ||
echo Deinstallieren des Service und der Registry-Werte... | echo Deinstallieren des Service und der Registry-Werte... | ||
- | " | + | "%INSTSRV%" "%APPNAME%" remove |
:ende | :ende | ||
echo. | echo. | ||
echo *** Fertig *** | echo *** Fertig *** | ||
echo. | echo. | ||
- | pause | ||
</ | </ | ||
+ | |||
+ | Ersetzen Sie bei den Zeilen | ||
+ | |||
+ | SET APPNAME=testservice\\ | ||
+ | SET INSTSRV=c: | ||
+ | SET SRVANY=c: | ||
+ | |||
+ | 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 | ||
< | < | ||
- | REGEDIT4 | + | REGEDIT4 |
+ | 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] |
- | " | + | " |
- | " | + | " |
- | " | + | " |
</ | </ | ||
+ | |||
+ | 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 " | ||
+ | |||
+ | Achten Sie auch darauf, dass bei den Parameterwerten das Trennzeichen ' | ||
\\ | \\ | ||
- | ===== Schritt 3: Start der Anwendung | + | 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 | + | **Die zugehörige Anwendung |
+ | < | ||
+ | @echo off | ||
+ | echo. >> | ||
+ | echo ---------------------------------------->> | ||
+ | echo Mein Parameter lautet " | ||
+ | echo. >> | ||
+ | dir c:\ >> | ||
+ | </ | ||
- | < | + | Dieses kleine Script wird jedesmal, wenn der Service testservice startet, eine Meldung mit dem in der Registry gespeicherten Parameter " |
+ | test.log wächst also mit jedem Service-Start um die Ausgabedaten. | ||
- | im Beispiel: | + | \\ |
- | < | + | ===== 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: | ||
+ | |||
+ | < | ||
+ | |||
+ | Sie können mit dem folgenden Kommando den Service auch manuell starten, nachdem er wie in Schritt 1 installiert wurde: | ||
+ | |||
+ | < | ||
\\ | \\ | ||
===== 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: | ||
- | < | + | < |
Danach entfernen Sie den Service aus dem System mit: | Danach entfernen Sie den Service aus dem System mit: | ||
- | < | + | < |
Dabei verschwindet dann auch der gesamte Eintrag | Dabei verschwindet dann auch der gesamte Eintrag | ||
- | | + | **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 ' | ||
+ | |||
+ | < | ||
+ | |||
+ | Dann wird der Service gestoppt und aus dem System entfernt. | ||
\\ | \\ |