Windows Dienste und Umgebungsvariablen

Geschreiben von Marcus KimpenhausaufJul 6, 2007 in entwicklung |

Google Suchergebnisse

Folgende Begriffe wurden gesucht:

Bitte oben einen Suchbegriff anklicken um hier zum ersten Treffer zu gelangen (wenn vorhanden) oder zurück gehen zur Trefferliste aller Ergebnisse.

Da bin ich doch gestern auf einen Umstand hereingefallen, der mir als solcher nicht klar war :(

Aus einem PHP-Prozess (unter Apache) musste ich ein Shell-Command absetzen, welches eine Java-Routine zur Erzeugung eines PDF-Dokumentes aus einer FOP-Datei anstößt. Das Problem war, dass nach einer Neuinstalltion der Java-Zugriff nicht in der PATH-Umgebungsvariable (SYSTEM) eingetragen war und somit der simple Aufruf

java -cp .... 

auf einen Fehler

'java' is not recognized as an
internal or external command,
operable program or batch file

stieß. … *hmpf*

Nun gut – die Lösung schien recht simpel – einfach den Pfad zum Java-Executable in die PATH-Umgebungsvariable eingetragen eine Shell geöffnet und schwups – der Aufruf klappte. Super – schnell den Apache durchgestartet und nochmals das PHP-Skript getestet – gleicher Fehler wie zuvor … WHAAAT :o

Nachdem ich ein paar Versuche hinter mich gebracht und x-mal den Apache-Dienst neugestartet hatte, blieb mir als letzte mögliche Lösung ein reboot des Systems (was unter Windows ja schon häufiger zum Ziel führte :P ) – und siehe da – nach dem reboot lief das Skript wieder einwandfrei *juppi*

Aber warum??

Nun – Martin‘s Theorie hat sich heut morgen dann sehr schnell bestätigt! Die Dienste, die unter Local-System-Account gestartet werden, erben ihre Umgebung aus dem Services.exe Prozess, welcher bei Systemstart (und somit mit den ursprünglichen PATH-Einstellungen) gestartet wird. Da dieser nicht auf Windows-Messaging aufsetzt, erhält er keine Benachrichtigung, dass sich die Umgebung geändert hat und kann dies somit nicht weiterreichen – also muss das System neu gebootet werden. Wenn man’s weiß – leuchtet es ein – aber gut gelöst ist es nicht #-o

Wer mag, kann sich das Ganze auch in der Microsoft Knowledgebase nachlesen.

Vielleicht wurde dieser Umstand ja unter Windows Vista behoben, da es nicht in der Liste der betroffenen Betriebssysteme auftaucht – es wäre wünschenswert – auch wenn Vista nicht den Weg auf einen meiner Rechner finden wird :D

Schlagwörter:,

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

Copyright © 2005-2010 marcus' tagebuch All rights reserved.
Desk Mess Mirrored v1.6 theme from BuyNowShop.com.