Jump to content

Server 2008 R2 - Perl als Dienst


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Kollegen!

 

So langsam freunde ich mich ja immer mehr mit dem 2008er Server an, nur bei einer Sache habe ich echt nen Hänger: Auf dem 2003er war es mit srvany ja echt easy das SNMP Tool MRTG per Perl zum Dienst umzubauen damit der Server auch mal rebooten kann ohne das danach was nicht tut.

 

Habe das mal nen Tag lang auf einem 2008er probiert und bin leider kläglich gescheitert - ich komme mit den Leerzeichen im Pfad nicht klar...

 

Ist unter 2008 (ob R2 oder nicht ist vermutlich egal) srvany eigentlich noch das richtige Tool oder bin ich da schon falsch abgebogen? Wenn das noch richtig ist, hat jemand vielleicht mit MRTG schon Erfahrungen sammeln können wie das auf einem 08er zum Dienst wird? Habe die Programmverzeichnisse nicht direkt in der Root liegen sondern schön artig unter Program Files(x86) nur genau damit wird es ja erst so richtig lustig :-)

 

Wie gesagt: Unter 2003 mit nem schönen deutschen Ordner Programme war das echt easy, aber mit dem Denglisch von 2008....

 

 

Grüße aus dem Schnee

dataKEKS

Link zu diesem Kommentar

Hey Carlito!

 

Ich bastel gerade mit sc.exe rum und bin aktuell soweit gekommen, das ich weiß wie der Aufruf aus einem beliebigen Ordner funktioniert:

 

"c:\Program Files\Perl\bin\perl.exe" "c:\Program Files\MRTG\bin\mrtg" "c:\Program Files\MRTG\bin\esd-ap-01.cfg"

 

Das alles in eine Zeile und MRTG läuft. Es muss halt PERL aufgerufen werden mit zwei Parametern: als erstes das Perl Skript und dann noch die Konfigurationsdatei dazu.

 

Damit sollte doch die SC Zeile so aussehen, richtig?

 

C:\>sc create "MRTG" start=auto binpath="c:\Program Files\Perl\bin\perl.exe" "c:\Program Files\MRTG\bin\mrtg" "c:\Program Files\MRTG\bin\esd-ap-01.cfg"

 

Leider meckert er da, und ich habe keine Idee wieso :-( Kannst Du helfen?

 

 

dataKEKS

Link zu diesem Kommentar
"c:\Program Files\Perl\bin\perl.exe" "c:\Program Files\MRTG\bin\mrtg" "c:\Program Files\MRTG\bin\esd-ap-01.cfg"

 

Das Perl Binary Verzeichnis sollte im System Pfad sein. Das vereinfacht die Sache schon mal.

 

Das alles in eine Zeile und MRTG läuft. Es muss halt PERL aufgerufen werden mit zwei Parametern: als erstes das Perl Skript und dann noch die Konfigurationsdatei dazu.

 

Damit sollte doch die SC Zeile so aussehen, richtig?

 

C:\>sc create "MRTG" start=auto binpath="c:\Program Files\Perl\bin\perl.exe" "c:\Program Files\MRTG\bin\mrtg" "c:\Program Files\MRTG\bin\esd-ap-01.cfg"

 

Leider meckert er da, und ich habe keine Idee wieso :-( Kannst Du helfen

 

Das sagte ich ja eben. Das Problem ist die Parameterübergabe. Die Anführungszeichen bei sc create "MRTG" solltest du übrigens weglassen, sonst heißt dein Dienst "MRTG" und steht logischerweise auch exakt so in der Dienste Verwaltung. Des Weiteren gehört hinter start= und binpath= zwingend jeweils ein Leerzeichen.

bearbeitet von carlito
Link zu diesem Kommentar

*lach*

 

Bingo! Einfach nur ein Leerzeichen nach dem Leerzeichen hinter binpath= und dann noch eins ganz am Ende und schon meckert sc.exe nicht mehr. Einzige Problem: So wie schon unter Server 2003 mag die wperl.exe nicht als Dienst laufen, Windows meldet wie schon früher Der Dienst reagiert auf die Kontrollfunktion nicht. Also ist ein direktes arbeiten über die wperl.exe nicht möglich. Also suche ich mal, ob srvany unter 2008 R2 / Win7 noch aktuell ist und erstatte wieder Bericht :-)

Link zu diesem Kommentar

Probiere mal:

 

At the time of this posting, there is no Windows Server 2008 Resource Kit Tools, so get the "srvany.exe " from the "Windows Server 2003 Resource Kit Tools " and copy it to a suitable location on your Win2008 server (e.g. C:\Windows\System32\ ).

Use "sc " to create a new service that launches "srvany " (e.g. sc create MyService binPath= C:\Windows\System32\srvany.exe DisplayName= "My Custom Service" )

Using RegEdit : create a "Parameters " key for your service (e.g. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Paramaters\ )

Using RegEdit : within the newly created "Parameters " key , create a string value called "Application " and enter the full path to the application you are wanting to run as a service. (No quotes required.)

Link zu diesem Kommentar

Hihi, genau darüber bin ich gestolpert und habe nun mit sc create den Dienst auf srvany.exe verweisend angelegt und dann noch die Registry Parameter wie im MRTG HowTo beschrieben angelegt.

 

Wenn ich den MRTG Ordner direkt unter C:\MRTG anlege geht es, mit C:\Program files\MRTG will es noch nicht, aber die Nacht ist ja auch noch jung :D

Link zu diesem Kommentar

Juhu! Gewonnen!

 

Wie befürchtet hängt es wirklich an den ganzen Leerzeichen, also wurde da mit 2008 doch glatt was verschlimmbessert :-)

 

Ich werde es gleich noch mal auf einem zweiten System gegentesten um sicher zu stellen das ich alles richtig notiert habe, aber eine Info kann ich schon mal vorab geben:

 

Wer gemäß der Anleitung von mrtg.org vorgeht (MRTG - The MRTG 2.17.0 Windows Installation Guide) und die Sachen unter Program Files ablegen will, muss nur an einer Stelle seiner Registry aufpassen: In den AppParameters müssen die Pfade jeweils einzeln in Anführungszeichen gesetzt werden, es reicht nicht ganz am Anfang sowie am Ende.

 

Bedeutet:

 

"C:\Program Files\MRTG\bin\mrtg" --logging=eventlog "C:\Program Files\MRTG\bin\mrt.cfg" ist richtig, während "C:\Program Files\MRTG\bin\mrtg --logging=eventlog C:\Program Files\MRTG\bin\mrt.cfg" falsch ist und nicht funktioniert.

 

 

Grüße aus dem erneut beschneiten BaWü

dataKEKS

Link zu diesem Kommentar

Eben weil PRTG Geld kostet und das knapp ist versuche ich MRTG durchzukommen, daher hier mal meine "Pseudoanleitung":

 

Bei Betrieb von MRTG auf einem Server 2008 / Vista / Win7 System mit Ablage der Anwendungen in den Progam Files Ordnern empfiehlt sich folgende Vorgehensweise:

 

1.) Perl von Perl, Python and Tcl - Dynamic Language Experts | ActiveState laden und installieren (Achtung!!! Will nach C:\Perl)

2.) MRTG von Index of /mrtg/pub laden und in Wunschpfad entpacken

3.) CFG Datei gemäß Anleitung erzeugen oder vorhandene Datei wieder einbinden

4.) Dienst anlegen

sc create MRTG start= auto binpath= "D:\Program Files (x86)\mrtg\bin\srvany.exe"

5.) Registry File erzeugen und importieren, hier die Pfade für Ablage unter D:\Program Files (x86)\

Windows Registry Editor Version 5.00

 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MRTG\Parameters]

"Application"="D:\\Program Files (x86)\\perl\\bin\\wperl.exe"

"AppParameters"="\"D:\\Program Files (x86)\\mrtg\\bin\\mrtg\" --logging=eventlog \"D:\\Program Files (x86)\\mrtg\\bin\\mrtg.cfg\""

"AppDirectory"="D:\\Program Files (x86)\\mrtg\\bin\\"

 

6.) Dienst starten und freuen

 

 

Vielleicht will das ja mal jemand gegentesten und gibt mir dann eine Rückmeldung?

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...