Suspending and hibernating Linux using dbus

The following shell script can be used for suspending Linux using dbus (if available):

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \

Similarly, the following shell script causes the system to hibernate (suspend to disk):

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \

Activating Hibernate

If you get the following error, your user is probably not allowed to hibernate:

Error org.freedesktop.UPower.GeneralError: not authorized

You can follow the instructions as described here to solve this problem (using the policykit-desktop-privileges package): Edit or create /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla, so that it contains the following section:

[Re-enable hibernate by default]

Alternative without dbus

A standard alternative, which requires root privileges, is to use the following commands:

sudo pm-supsend
sudo pm-hibernate

Another, low-level method is to write the desired state to files in /sys:

sudo bash -c "echo -n mem > /sys/power/state"
sudo bash -c "echo -n disk > /sys/power/state"


  • [1] Discussion on

Leave a Reply