Shutdown Pressing Power Button

From ArchWiki
Revision as of 16:04, 22 March 2010 by Pointone (talk | contribs) (use i18n template)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

If you want to shutdown your system by simply pressing the power button, do the following:

  1. Install the acpid package.
  2. If there is no hal in the DAEMONS array in rc.conf, add acpid to the DAEMONS array.
  3. 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)

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.