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!






Keine Kommentare:
Kommentar veröffentlichen