Hier mein ACPI Autoshutdown-Script...
Hallo, Leute! Wider Erwarten hat sich schneller eine Möglichkeit gefunden an meinen Bash-Script zu gelangen, als ich je erhofft hatte. Das ist der Aufruf des "Daemon"... ////////////////////////////////////////////////////////////////// #!/bin/sh # Installiert als: /etc/init.d/battmon # # symlinks aus den notwendigen Runlevel-Subdirs verweisen darauf, # ich verwende für den Start: rc5.d/S01battmon -> ../battmon # ich verwende für Beenden : rc5.d/K01battmon -> ../battmon case "$1" in start) echo "Starte BATTERIE-MONITOR" /sbin/battery_monitor & ;; stop) echo "Beende BATTERIE-MONITOR" killall -9 battery_monitor ;; *) echo "Usage: $0 {start|stop}" exit 1 esac #-eof- ////////////////////////////////////////////////////////////////// Das ist der "Daemon"... ////////////////////////////////////////////////////////////////// #!/bin/sh # Installiert als: /sbin/battery_monitor root.root r-xr-xr-x # # Dieser Shell-Script ist eine NOTLÖSUNG, da SuSE derzeit noch nicht # brauchbar ACPI unterstützt. # Geschrieben von: Rainer Hantsch PATH=/usr/bin:/usr/sbin:/bin:/sbin # Hier befinden sich die benötigten Daten im proc Filesystem... # Muß notfalls angepasst werden. # Status, ob Batteriebetrieb oder Netzbetrieb findet sich hier ac_stat=/proc/acpi/ac_adapter/AC/state # Status der Batterie findet sich hier bat_stat=/proc/acpi/battery/BAT0/state # Warntöne, die mit "PLAY" abgespielt werden... # Pfade und Dateinamen ggf. anpassen! warnsound=/opt/kde3/share/sounds/KDE_Beep_Bottles.wav stopsound=/opt/kde3/share/sounds/KDE_Logout_new.wav # Bei diesen Lade-Zuständen erfolgt Action... warnlevel=1500 # Bei welcher Akku-Restkapazität warnen? stoplevel=500 # Bei welcher Akku-Restkapazität SHUTDOWN machen? shortsleep=10 # Kurzes Prüfintervall longsleep=60 # Langes Prüfintervall # Ab hier nichts mehr verändern! player=`which play` stopcmd=`which halt` shortsleeplevel=`expr $warnlevel - $stoplevel` shortsleeplevel=`expr $shortsleeplevel / 3` shortsleeplevel=`expr $stoplevel + $shortsleeplevel` echo " Battery level for battery low ........... $warnlevel mAh" echo " Battery level for battery dead .......... $stoplevel mAh" echo " Testing intervals long / short .......... $longsleep / $shortsleep sec." echo " Short checking interval starts below .... $shortsleeplevel mAh" echo sleep 15 # Endlos - Programmschleife while [ 1 == 1 ] ; do # Batteriebetrieb erkennen if [ "`cat $ac_stat | grep -i 'off-line'`" != "" ] ; then mode="BATTERIE" else mode="NETZ" fi # Füllstand dummy=`cat $bat_stat` fill=`cat $bat_stat | grep mAh | cut -d ':' -f 2 | sed -e s/' mAh'//g -e s/' '//g` # clear # echo "Versorgung: $mode Akku-Restkapazität: $fill mAh" if [ "$mode" == "BATTERIE" ] ; then # Warnen, daß Batterie knapp wird. if [ $fill -le $warnlevel ] ; then $player $warnsound fi # Sofortiger Shutdown! if [ $fill -le $stoplevel ] ; then echo "FÜHRE SHUTDOWN AUS." $player $stopsound $stopcmd fi fi # Schlafenszeit auswählen... dummy=$longsleep if [ $fill -le $shortsleeplevel ] ; then dummy=$shortsleep fi sleep $dummy done #-eof- /////////////////////////////////////////////////////////////////////// mfg Ing. Rainer Hantsch -- .---------------------------------------------------------------------. | \\|// Ing. Rainer HANTSCH - Hardware + Software | | (o o) Forget Windoze! -- We focus on L-I-N-U-X... | |--oOOo-(_)-oOOo------------------------------------------------------| | Ing. Rainer HANTSCH | mail: office@hantsch.co.at | | Khunngasse 21/20 | www: http://www.hantsch.co.at | | A-1030 Vienna | tel: +43-1-79885380 fax: +43-1-798853818 | | ** A u s t r i a ** | handy: +43-664-9194382 UID-Nr: ATU 11134002 | '---------------------------------------------------------------------'
participants (1)
-
Rainer Hantsch