ich vertraue prinzipiell nicht etwaigen guis, die mit ein paar check-boxen bedient werden, und schon hat man einen energiesparplan!?! [start - einstellungen - systemsteuerung - energieoptionen - ...]! nein, ich möchte auf meine art steuern können, wann und wie mein htpc schlafen geht. das folgende perl-script, welches alle 5 minuten unter der kontrolle des vista task scheduler läuft, tut genau dies.
das script gibt es einfach hier zum download [click auf grafik !]
perl script [s3_now.txt] sollte umbenannt werden auf [s3_now.pl]
teil 1 des scriptes
initialisierung des scriptes, win32::mutex wird geladen, damit eine gewisse option offengehalten wird, andere scripts parallel auszuführen. tlist.exe zur überprüfung, welche prozesse laufen, ehrec.exe [läuft eine aufnahme?], ehshell.exe [vmc shell aktiv], und natürlich ein shutdown commando. gibt es das unc-share \\nwal001\... so werden hier parameter überschrieben. nwal001 ist eine linksys nslu mit openslug os.
das script gibt es einfach hier zum download [click auf grafik !]perl script [s3_now.txt] sollte umbenannt werden auf [s3_now.pl]
teil 1 des scriptes
initialisierung des scriptes, win32::mutex wird geladen, damit eine gewisse option offengehalten wird, andere scripts parallel auszuführen. tlist.exe zur überprüfung, welche prozesse laufen, ehrec.exe [läuft eine aufnahme?], ehshell.exe [vmc shell aktiv], und natürlich ein shutdown commando. gibt es das unc-share \\nwal001\... so werden hier parameter überschrieben. nwal001 ist eine linksys nslu mit openslug os.
teil 2 des scriptes [logik]
zeile 44: ist ein mutex namens 'backup_active' gesetzt [ein anderes script, welches dateien sichert und lange läuft, hier soll natürlich nicht schlafen gegangen werden!!], zeile 49: hier wird händisch gesteuert, ob aus irgend einem grund kein schlaf erwünscht ist, und falls doch [zeile 55] bitte nicht schlafen, sondern herunterfahren [shutdown /r /f]. ansonsten wie gewohnt einmal einen netstat befehl absetzten um zu sehen ob ein client [xbox360] vielleicht connected ist.
teil 3 des scriptes [logik]
kein client connected [else zweig zeile 80], prüfe ob andere faktoren zutreffen, sodass keine hibernation laufen soll, wie z.b. - läuft vielleicht mce local, oder wird gerade aufgenommen? trifft dies alles nicht zu, bitte schlafen gehen! [zeile 98 mit shutdown.exe /h /f !...]
teil 4 des scriptes [subroutine]
hier wird lediglich ein rotierendes log file initialisiert [log4perl], wohin stdout bzw. stderr wandern und housekeeping gewährleistet ist.
denkbar einfach, doch letzten endes entscheide nur ich, wann der rechner wirklich schlafen geht, ausserdem ist dieses script beliebig erweiterbar!





