In der aktuellen Ubuntu-Version (10.04 Lucid Lynx) wurde Device.Kit durch UPower ersetzt. Daher muss der logfish.net-Workaround, welcher als Alternatve zum berenteten gnome-power-cmd den PC ohne root-Rechte in den Ruhestand schicken konnte, entsprechend angepasst werden (Die “alte” Version für Karmic findest du hier).

Man erstellt eine ausführbare Datei namens “own-power-cmd” und legt sie z.B. in den Skriptordner.

cd ~/bin
touch own-power-cmd
chmod +x own-power-cmd

Die Datei erhält nun folgenden Inhalt:

#!/bin/bash
#    gnome-power-cmd replacement
#    Copyright (C) 2009 A. Bram Neijt <bram @neijt.nl>
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see http ://www.gnu.org/licenses.

case $1 in
suspend)
echo Suspending
    dbus-send --print-reply \
        --system \
        --dest=org.freedesktop.UPower \
        /org/freedesktop/UPower \
        org.freedesktop.UPower.Suspend
;;
hibernate)
echo Hibernating
    dbus-send --print-reply \
        --system \
        --dest=org.freedesktop.UPower \
        /org/freedesktop/UPower \
        org.freedesktop.UPower.Hibernate
;;
*)
echo Not supported command: '"'$1'"'
echo Usage: $0 '<suspend |hibernate>'
exit 1
;;
esac

Ab jetzt kann man ins Terminal eingeben:

own-power-cmd suspend

oder

own-power-cmd hibernate

…und der Rechner geht schlafen…

Python

Das Ganze funktioniert natürlich auch mittels Python-Script:

touch Suspenden.py
chmod +x Suspenden.py
nano Suspenden.py






#!/usr/bin/env python
import dbus
#----------- Funktion zum suspenden -------------------
def GeheSchlafen():
        bus = dbus.SystemBus()
        proxy_object = bus.get_object('org.freedesktop.UPower','/org/freedesktop/UPower')
        pm = dbus.Interface(proxy_object,'org.freedesktop.UPower')
        pm.Suspend()
#-----------------------------------------------------------

print "Fahre nun in Suspend"
GeheSchlafen()

Das Script kann nun per

./Suspenden.py

aufgerufen werden.