Jan's Linux Log
This blog started out as an install log of RedHat 9 on a Compaq Presario 2538cl laptop (linuxpresario.blogspot.com) . However, I soon started to include little logs to myself when I made configuration changes to software, etc. So, I've moved it over to our domain, and changed its name to Linux Log. Here you will find some tips & tricks related to Linux configuration on a laptop, as well as software related things that I run into. I log here things that worked for me, of course, your mileage may vary.
Any questions/comments? E-mail me at linux_atsign_boshoff|za|net.
Hibernate using acpid
October 29, 2003
I've written a little script to hibernate when I hit the power button. On my laptop, everytime you hit the power button it registers two power button events in the acpid log. So I needed to work around it a little, to prevent two consecutive suspend-resume cycles everytime I hit the power. In /etc/acpi/events I have a script "power", which has:
# This is a sample ACPID configuration
event=button[ /]power
#action=sudo /usr/local/sbin/hibernate
action=/etc/acpi/events/start_suspend.sh %e
The %e passes the full entry of the acpi event to the script. I'm not using this yet. Here's the start_suspend.sh script:
#!/usr/bin/perl
$DIR = "/etc/acpi/events";
$counter=`cat $DIR/buttoncounter | bc`;
if ( $counter == 0 ) {
# First button event, suspend computer
$out = `echo 1 > /etc/acpi/events/buttoncounter`;
$out = `sudo /usr/local/sbin/hibernate` || die "Unable to start hibernating: $!";
} else {
# Second button event, insert usb controller module
$out = `echo 0 > /etc/acpi/events/buttoncounter`;
}
What's nice about it is that it makes it easy to run additional things upon resume. I don't need this yet, but I can see how sometimes one would want to do this. As you can tell, it's basically a work-around for my dual-acpi-event-when-power-button-is-pressed problem.