Existem duas maneiras básicas para isso ser feito e uma solução alternativa:
Você precisa modificar /usr/share/polkit-1/actions/org.freedesktop.upower.policy
, definir a variável de ambiente XDG_SESSION_COOKIE
como o valor apropriado ou usar pm-suspend
:
Modificando /usr/share/polkit-1/actions/org.freedesktop.upower.policy
Aplique este patch:
--- /usr/share/polkit-1/actions/org.freedesktop.upower.policy.orig 2011-11-16 19:06:59.274055248 +0100
+++ /usr/share/polkit-1/actions/org.freedesktop.upower.policy 2011-11-16 19:11:15.178864922 +0100
@@ -21,6 +21,7 @@
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
+ <allow_any>yes</allow_any>
</defaults>
</action>
(Para o <action id="org.freedesktop.upower.suspend">
tag / section), e também funcionará ...
ou
XDG_SESSION_COOKIE
Quando você estiver usando a área de trabalho, verá que $XDG_SESSION_COOKIE
tem um valor, mas em uma sessão ssh, ele tem outro. Armazenar XDG_SESSION_COOKIE
, por exemplo em um .dotfile ou algo assim quando a área de trabalho inicia e a fonte em seu script que precisa ser executada em ssh.
pm-suspend
Ou você pode simplesmente desistir de fazer isso com dbus
e UPower
e apenas emitir pm-suspend
como root e acabar logo com isso! : -)