Comment fonctionne l'appel DE de l'ACP?

D'accord, tout d'abord, ce n'est pas un problème auquel je suis confronté, mais j'aimerais mieux comprendre cela.

Si je souhaite arrêter / redémarrer ma machine depuis la command line, j'ai besoin d'appeler:

$ sudo poweroff $ sudo reboot 

C'est-à-dire, j'ai besoin de privilèges root pour faire ces appels ACPI.

Cependant, je démarre mon DE, (j'utilise XFCE) sans lui accorder les droits root: $ startxfce4 –with-ck-launch

Maintenant, je sais que le paramètre --with-ck-launch permet à XFCE d'arrêter / redémarrer mon système, mais je ne comprends pas comment.

Qu'est-ce qui permet à ConsoleKit de s'arrêter sans privilèges root? Comment peut-il changer le niveau d'exécution sans privilèges super-user? Et comme c'est possible, comment puis-je arrêter ma machine depuis la console sans privilèges root?

    Vous pouvez communiquer avec ConsoleKit via dbus. Par exemple, en utilisant l'outil dbus-send , quelques commands notables sont,

    Fermer:

     dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop 

    Redémarrer:

     dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart 

    Il y a aussi des commands pour hibernate et suspendre mais je ne sais pas ce qu'elles sont.


    edit: Commande de suspension trouvée

     dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0 

    Sur les systèmes newwer

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