Hallo alle!
Ich habe mir eben ein kleines Perl-Programm geschrieben, der eine Log-Rotation für meinen noch frisch installierten Apache (Xampp, wer outet sich, und gibt zu, doch noch die langen Threads gelesen zu haben? *g*) »organisiert«.
Das Progrämmche habe ich im Taskplaner eingenistet, es startet um Punkt 00.00 Uhr, stoppt den Apache, wenn dieser läuft, verschiebt die Logs in /xampp/apache/logs/old, weckt den Häuptling wieder und hat dann alle Ruhe, die eben verschobenen Logfiles (error.log, access.log) umzubenennen... yeah, alles zufriedenstellend...
Da ich mir das hier [1] Dargestellte überlegt habe, habe ich den Xampp-Apache nicht als Dienst laufen lassen wollen, sondern wollte mein Programm in den Autostart-Ordner von Windows legen. Aber eben das quittiert mir Apache mit einem Programmabruch (»Apache hat ein Problem festgestellt und muss beendet werden). Wenn ich das Teil aus dem Autostart herausnehme, und irgendwann, lange nach dem ich sicher bin, dass Windoof und seinen was-weiß-ich-wie-vielen-Hilfsproggis geladen wurde, den Apache dennoch über mein Programm starte, ja, dann läuft es.
Was passiert also beim Booten genau, wann werden Dienste geladen, wann wird der Autostart durchgegangen, kann das sein, dass da noch nicht alles zur Verfügung steht...?
[1] Gegen den Apache als Dienst sprach das Folgende: Das Programm vergleicht das aktuelle Datum (sagen wir mal »heute«, was eben time() ausgibt), mit dem mtime-Zeitstempel der Logfiles. Wenn Apache als Dienst läuft, dann wird er ja quasi sofort mit Windows gestartet. Und nun folgendes Gedankenspiel:
- PC wird um 23.30 Uhr am 22. Januar heruntergefahren, Apache liegt zwangsläufig auf den ewigen Jagdgründen, die Logs haben alle ein mtime vom 22.01.
- PC wird um 08.00 Uhr am 23. Januar wieder eingeschaltet, Apache startet gleich als Dienst, modifiziert sofort zumindest die error.log auf mtime 23.01. 08:01 oder so...
- ich starte mein Programm, es sieht: time und mtime sind gleich (zumindest vom Tag her), und sagt sich: Prima, nix zu tun
Gegen einen anderen Vergleich (auf ctime.Zeitstempel) spricht, dass der »Created time« der access.log zum Beispiel unverändert bleibt. OK, man könnte die Datei gleich nach dem Verschieben unlinken, so dass wirklich eine Nagelneue vom Apache erstellt wird... aber dennoch wurmt mich die Sache mit dem Autostart...
Viele Grüße aus Frankfurt/Main,
Patrick

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?