Shutdown Pressing Power Button
If you want to shutdown your system by simply pressing the power button, do the following:
- Install the acpid package.
- If there is no hal in the DAEMONS array in rc.conf, add acpid to the DAEMONS array.
- Create a file in /etc/acpi/events/ named power with following content:
# /etc/acpi/events/power # This is called when the user presses the power button event=button/power (PWR.||PBTN) action=/sbin/poweroff
To be able to test it, make sure the acpid daemon is started
If you do not have hal, start the acpid daemon yourself:
# /etc/rc.d/acpid start
Otherwise restart hal, it will take care of acpid:
# /etc/rc.d/hal restart
From now on, pressing the power button (lightly, not for a few seconds) should properly shutdown the system. Note that if you have hibernate configured and working you may want to change the last line with:
However, if you're using more sophisticated WM, you should use its own shutdown call, so it'd save its session etc.
To accomplish it in KDE 3, simply change the action to:
action=/opt/kde/bin/dcop --all-users --all-sessions ksmserver ksmserver logout 0 2 0
For KDE 4, dcop is being phased out in favour of dbus, so as well as the above you could also use:
action=/usr/bin/qdbus org.kde.ksmserver /KSMServer logout 0 2 0
Note: More information on using dbus is here.
Likewise for XFCE4.4 change the action line to:
action=echo POWEROFF | /usr/lib/xfce4/xfsm-shutdown-helper
Note: For a more robust solution (If you are facing frequent WM crashes or working on a sacrificial PC for developing or testing your software...), you should take a look at "/usr/src/linux/Documentation/sysrq.txt", which is a kernel facility for yielding you (the user...) the CPU so that it could be used for any rescue work.