Hallo broseman,
ich habe das mit acpi gemacht. Du musst dafür auf jeden Fall die Pakete acpi und acpid installiert haben:
sudo apt-get install acpi acpid
Jetzt kannst du dir mit dem Befehl acpi_listen das Singal anzeigen lassen, welches gesendet wird, sobald du dein Netzteil abziehst.
Bei mir sieht das so aus:
#Netzteil abgezogen
battery BAT0 00000081 00000001
battery BAT0 00000080 00000001
ac_adapter ACAD 00000080 00000000
processor CPU0 00000081 00000000
processor CPU1 00000081 00000000
# Netzteil angestöpselt
battery BAT0 00000081 00000001
battery BAT0 00000080 00000001
ac_adapter ACAD 00000080 00000001
Damit du auf diese Events reagieren kannst, musst du eine kleine Datei in /etc/acpi/events/ anlegen (ich habe diese einfach acpower genannt).
sudo vi /etc/acpi/events/acpower
In diese Datei kommt dann (Achtung, der Wert 00000080 sollte stimmig mit deiner Ausgabe aus acpi_listen sein):
event=ac_adapter ACAD 00000080
action=/etc/acpi/acpower.sh %e
Ok, um jetzt auf diese Events zu reagieren, habe ich ein kleines Script geschrieben (/etc/acpi/acpower.sh):
#!/bin/bash
LOGFILE=/var/log/acpid.log
echo "$1" >> $LOGFILE
action=`acpi -a |awk -F' ' '{print $3}'`
echo "$action" >> $LOGFILE
if [ $action == "on-line" ];then
ifup eth1 >> $LOGFILE 2>&1;
elif [ $action == "off-line" ];then
ifdown eth1 >> $LOGFILE 2>&1;
fi
Dem Script jetzt noch die Rechte geben:
sudo chmod 755 /etc/acpi/acpower.sh
und acpid neustarten:
sudo /etc/init.d/acpid restart
Die Logausgaben kannst du natürlich nach dem Test weglassen.
Gruß Marco