Como os DE chamam funções ACPI?

6

Ok, em primeiro lugar, isso não é um problema que estou enfrentando, mas gostaria de entender isso melhor.

Se eu quiser desligar / reiniciar minha máquina a partir da linha de comando, preciso ligar:

$ sudo poweroff
$ sudo reboot

Ou seja, preciso de privilégios de root para fazer essas chamadas da ACPI.

No entanto, inicio meu DE (uso o XFCE) sem conceder privilégios de root:     $ startxfce4 --with-ck-launch

Agora, eu sei que o parâmetro --with-ck-launch ajuda a permitir que o XFCE desligue / reinicialize o sistema, mas não entendo como.

O que permite que o ConsoleKit seja desligado sem privilégios de root? Como pode mudar o nível de execução sem privilégios de superusuário? E, como é possível, como posso desligar minha máquina do console sem privilégios de root?

    
por darnir 12.08.2012 / 10:09

1 resposta

2

Você pode se comunicar com o ConsoleKit através do dbus. Por exemplo, usando a ferramenta dbus-send , alguns comandos notáveis são,

Encerramento:

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

Reinicializar:

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

Também existem comandos para hibernar e suspender, mas não sei o que são.

edite: Encontrado comando de suspensão

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

Em sistemas newwer

dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
    
por 13.08.2012 / 03:14