Há duas maneiras básicas de fazer isso e uma solução alternativa:
Você precisa modificar /usr/share/polkit-1/actions/org.freedesktop.upower.policy
, configurar a XDG_SESSION_COOKIE
variável de ambiente para 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 a <action id="org.freedesktop.upower.suspend">
tag / seção), e também funcionará ...
ou
XDG_SESSION_COOKIE
Ao usar a área de trabalho, você verá que $XDG_SESSION_COOKIE
tem um valor, mas em uma sessão ssh, ele tem outro. Armazene, XDG_SESSION_COOKIE
por exemplo, em um arquivo .dotfile ou algo assim, quando a área de trabalho for iniciada, e obtenha-a no seu script, que precisa ser executada no ssh.
pm-suspend
Ou você poderia simplesmente desistir de fazê-lo com dbus
e UPower
e apenas questão pm-suspend
como root e acabar logo com isso! :-)