Hay dos formas básicas de hacer esto y una solución alternativa:
O necesita modificar /usr/share/polkit-1/actions/org.freedesktop.upower.policy
, establecer la XDG_SESSION_COOKIE
variable de entorno en el valor apropiado o usar pm-suspend
:
Modificando /usr/share/polkit-1/actions/org.freedesktop.upower.policy
Aplica este parche:
--- /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>
(A la <action id="org.freedesktop.upower.suspend">
etiqueta / sección), y también funcionará ...
o
XDG_SESSION_COOKIE
Cuando use el escritorio, verá que $XDG_SESSION_COOKIE
tiene un valor, pero en una sesión ssh, tiene otro. Almacene, XDG_SESSION_COOKIE
por ejemplo, en un archivo .dot o algo así cuando se inicie el escritorio y compérelo en su script que necesita hacerlo a través de ssh.
pm-suspender
O simplemente puede renunciar a hacerlo con dbus
y UPower
y emisión simplemente pm-suspend
como root y acabar de una vez! :-)