Customize the power button action (ubuntu 10.04)
I would like to customize the power button action. The tutorial at http://blog.metalight.dk/2010/07/ubuntu-lucid-custom-power-button-event/ works but not always (the number of shutdown processes can sometimes be different).
I need the solution where
- 1x press of a button executes the usual OS shutdown
- 3x press of a button executes OS reboot
How would you write the code for it? FILE: /etc/acpi/powerbtn.sh
#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.
# you need to double 'click' the power button to shutdown
( if ! [ $(pidof -x powerbtn.sh | wc -w) -eq 3 ]; then
sleep .4
exit
else
poweroff
fi
) &
Solution 1:
The number of processes should not be different. You have to remember when counting the pids to include the script itself and the subprocess created.
I created the following that should work for your requirements. You should alter the timeout depending on how quickly you want the multiple button presses.
#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.
timeout=0.8
pid_count=$(pidof -x powerbtn.sh | wc -w)
( if [ $pid_count -eq 4 ]; then
sleep $timeout
/etc/acpi/sleep.sh
else
sleep $timeout
pid_count_now=$(pidof -x powerbtn.sh | wc -w)
if [ $pid_count_now -eq 2 ] && [ $pid_count -eq 2 ]; then
poweroff
fi
exit
fi
) &