¿Cómo puedo suspender / hibernar desde la línea de comandos?

Respuestas:

312

Tradicionalmente, Ubuntu soportaba un método bastante contundente de suspender e hibernar. Ninguno de los dos se integraría bien con otras aplicaciones y, a veces, ni siquiera funcionaría en algunas máquinas. El nuevo método no requiere root y notifica a todas las aplicaciones que escuchan eventos de energía.

Método Systemd

A partir de Ubuntu 16.04, se systemctldebe usar la llamada (Ver comando Suspender en Ubuntu 16.04 )

systemctl suspend

y

systemctl hibernate

Nuevo método

Vea la respuesta aquí en esta página de Adam Paetznick sobre el uso de dbus . Lo ideal sería crear un ~/bin/suspendacceso directo / script que facilite el uso de esta acción.

Para usar sobre ssh, debe modificar las reglas del juego de políticas tal como lo describe Peter V. Mørch

Método antiguo

De acuerdo con el Foro de Ubuntu , puede usar los siguientes comandos:

pmi action suspend

y

pmi action hibernate

Esto requiere que instale el paquete de interfaz de administración de energía (no probado).

sudo apt-get install powermanagement-interface

También he encontrado los comandos sudo pm-suspendy sudo pm-hibernatepara trabajar en mi netbook.

txwikinger
fuente
21
pm-suspend y pm-hibernate me funcionan y es fácil. Requiere sudo pero está bien. (Encontré una idea de pmi antes pero instalar un paquete para usar suspender es muy malo ...)
user1034
1
Tenga en cuenta que apt-get install powermanagement-interfacedebe ejecutar pmi.
nealmcb
1
El 11.10 solo funciona pm- *, también con la interfaz
powermanagament
1
no funciona con mi ubuntu 12.10. despuésapt-get install powermanagement-interface
algo de
1
nuevo método ahora está roto ver unix.stackexchange.com/questions/153099/…
ijk
188

La forma amigable de los gnomos es usar dbus.

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

Hay dos ventajas para este comando sobre pm-suspend.

  1. Bloqueará su pantalla (al reanudar) si tiene esa opción seleccionada en gnome.

  2. No requiere privilegio de root, por lo que es fácil agregarlo como un método abreviado de teclado, por ejemplo.

Como se menciona en los comentarios intercambiando Suspenden la última línea para Hibernatecrear un comando de hibernación:

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

Si la hibernación se produce, es posible que Error org.freedesktop.UPower.GeneralError: not authorizedsu usuario no pueda hibernar. Edite o cree /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklapara que contenga la siguiente sección: (fuente)

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Esto fue probado en UbuntuGnome 14.04 .

Nota: Esto es básicamente lo mismo que la respuesta de qbi, pero se actualizó para que funcione para las versiones más nuevas de Ubuntu, además de incluir la hibernación.

Adam Paetznick
fuente
15
Tu respuesta realmente debería ser la primera. Es una forma gnome no root de paquetes sin instalar. ¡Me gusta!
turbo
11
Para Hibernate, simplemente puede reemplazar la última línea conorg.freedesktop.UPower.Hibernate
Sheharyar
2
en mi 13.10 funciona. sin embargo, la pantalla no se bloquea al reanudar, aunque en "Seguridad y privacidad", "Requerir mi contraseña cuando me levanto de Suspender" esté activado.
andreas-h
3
No funcionó para mí (Gnome 3.12, Ubuntu 14.04). Parece que la interfaz [UPower.Suspend] fue eliminada, de acuerdo con bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/…
Gui Ambros
44
La interfaz de suspensión se movió para iniciar sesión; askubuntu.com/questions/652978
Khurshid Alam
58

Inglés

Si desea que su computadora se suspenda en una hora porque quiere acostarse escuchando su estación de radio favorita, abra la terminal y escriba:

sudo bash -c "sleep 1h; pm-suspend"

y tu computadora se dormirá en 1 hora. Cuando despierte, habrá mantenido sus imágenes abiertas y todas sus cosas.

Puedes reemplazarlo 1hpor lo que quieras: hpor horas, mpor minutos, spor segundos, dpor días.

¡Buenas noches!

Français

Si vous voulez juste que votre ordinateur se mette en veille dans une heure parce que vous voulez vous endormir en ecoutant votre radio préférée, ouvrez Terminal et tapez:

sudo bash -c "sleep 1h; pm-suspend"

et votre ordinateur s'endormira dans une heure. Quand vous vous réveillerez, il aura conservé en mémoire vos aplicaciones ouvertes.

Vous pouvez remplacer 1hpar ce que vous voulez: hpour les heures, mpour les minutes, spour les secondes, dpour les jours.

¡Bonne nuit!

Español

Si quieres suspender tu computadora en una hora porque quieres ir a dormir escuchando tu estación de radio favorita, tan solo abre el terminal y escribe:

sudo bash -c "sleep 1h; pm-suspend"

y tu computadora se quedará dormida en 1 hora. Cuando despierta, allí habrán abierto sus imágenes y todas tus cosas.

Puedes reemplazar 1hpor lo que desees: hpara horas, mpara minutos, spara segundos, dpara días.

¡Buenas noches!

Greg
fuente
¡Ese es mi caso de uso que estoy buscando! AFIK pm- * se puede ejecutar sin permisos de superusuario
ruX
31

Para Ubuntu 12.04 LTS y Ubuntu 13.04

Para obtener la hibernación:

sudo pm-hibernate

Para suspender:

sudo pm-suspend
rɑːdʒɑ
fuente
"sudo pm-suspend" no funciona en mint 13 mate :(
rsjethani
Sí, creo que ese paquete no fue instalado. busca esos paquetes en sináptico.
rɑːdʒɑ
2
El inconveniente de este método es que si está utilizando la GUI, pm-suspend NO bloqueará su sesión, lo que puede ser inseguro.
Raúl Salinas-Monteagudo
1
También funciona en ubuntu 15.10.
Searene
1
funciona en 14.04 lts
Vitaly Zdanevich
22

Puede usar el archivo /sys/power/statepara hacer esto. Primero descubra qué estados son compatibles:

user@linux:_> cat /sys/power/state
standby mem disk

root@linux:~> echo -n mem > /sys/power/state  # suspend to ram
root@linux:~> echo -n disk > /sys/power/state  # suspend to disk

o vía dbus:

# Suspender dbus-send --session --dest = org.gnome.PowerManager \ --type = method_call --print-reply --reply-timeout = 2000 \ / org / gnome / PowerManager org.gnome.PowerManager.Suspend # Hibernate dbus-send --session --dest = org.gnome.PowerManager \ --type = method_call --print-reply --reply-timeout = 2000 \ / org / gnome / PowerManager org.gnome.PowerManager.Hibernate

De acuerdo con esta entrada en el launchpad , se eliminó la interfaz anterior. Entonces ya no funcionaría en Ubuntu.

qbi
fuente
La primera idea me da: "bash: echo: error de escritura: argumento inválido" La idea de Dbus da salida: "Error org.freedesktop.DBus.Error.UnknownMethod: Método" Suspender "con firma" "en la interfaz" org.gnome.PowerManager " no existe "
user1034
Agregué una pequeña explicación a la /sys/power/statecosa. Además, el método dbus se eliminó de Ubuntu para que ya no funcione.
qbi
$ sudo echo -n mem > /sys/power/state-bash: /sys/power/state: Permission denied
Hubro
3
Esto funciona muy bien. Para las personas que tienen problemas con este método cuando usan sudo, el "pipe to file", también conocido como ">" se está ejecutando en su shell actual, por lo que no obtiene privilegios de superusuario mientras que su eco lo hizo. Tendrá que usar sudo -iprimero, o canalizar a sudo teegusto:echo mem | sudo tee /sys/power/state
RandomInsano
12

Para apagar un sistema (14.04) desde la línea de comando (o atajo de teclado) use:

dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:true

Descubrí esto jugando con gdbus que puede enumerar las interfaces disponibles:

Para enumerar los servicios disponibles en el autobús:

dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

Para encontrar los métodos:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
simonltwick
fuente
12

desde 15.04 systemD es el sistema de inicio estándar, por lo que hay un nuevo comando para ser utilizado:

systemctl suspend
k1l
fuente
Estoy usando Xubuntu 15.04. El comando systemctl suspendsuspende la computadora, pero no hace que la pantalla se bloquee, a pesar de que he marcado la casilla de verificación "Bloquear pantalla cuando el sistema se va a dormir" en Configuración -> Administrador de energía -> Seguridad. Alguien tiene alguna idea de por qué?
Teemu Leisti
He actualizado a Xubuntu 16.04. El comando systemctl suspendaún suspende la computadora. Ahora, también hace que la pantalla se bloquee, si y solo si la casilla de verificación "Bloquear pantalla cuando el sistema se va a dormir" en Configuración -> Administrador de energía -> Seguridad está marcada.
Teemu Leisti
8

La respuesta dbus-send de Adam Paetznick no funcionó como supuestamente para mí en lúcido; la máquina se despertó desbloqueada, aunque el gnome-power-manager está configurado para bloquear la pantalla al despertar. Quiero que la pantalla se bloquee al despertar, y descubrí que lo siguiente hace eso:

$ gnome-screensaver-command --lock && pmi action hibernate

Me imagino que esto no depende de la configuración de gnome, pero no lo he probado.

Aryeh Leib Taurog
fuente
Agradable. O xscreensaver-command --lockcomo sea el caso.
phyzome
3

Nueva interfaz

... que funciona en 15.10 Wily, y posiblemente Utopic and Vivid.

dbus-send --print-reply --system                         \
    --dest=org.freedesktop.login1                        \
    /org/freedesktop/login1                              \
    org.freedesktop.login1.Manager.Suspend boolean:true

Con ayuda, esto no requiere sudo, a diferencia del pm-suspendcomando.

Gringo Suave
fuente
Mi XPS 13 9350 con Debian / Gnome tenía problemas de suspensión / hibernación al cerrar la tapa. Después de ejecutar este comando (y el equivalente para la hibernación), se suspendió con éxito (y la hibernación) y ahora cerrar y abrir la tapa funciona como se esperaba.
Victor Schröder
1

Aquí se explica cómo poner una máquina remota en modo de espera sobre ssh:

ssh -t 192.168.1.4 'sudo nohup &> / dev / null bash -c "(suspensión 1; echo -n mem> / sys / power / state) &"'
Contraseña de [email protected]: 
[sudo] contraseña para x: 
Conexión a 192.168.1.4 cerrada.

/ sys / power / state funciona en Ubuntu 13.10. pmi da error Dbus.

usuario229115
fuente
0

Personalmente, he estado experimentando con el método pmi. Sin embargo, cuando he intentado esto, tengo un mensaje de error: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1. Sin embargo, hay una solución alternativa en el tercer comentario de este informe de error , que parece haber funcionado para mí (estoy usando Ubuntu 13.03).

TSJNachos117
fuente
Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
fossfreedom
0

Actualización para aquellos que, como yo, todavía trabajan en sistemas KDE / Ubuntu 14.04. Para bloquear el uso qdbusy suspender el uso dbus. Comando completo:

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Para hibernar, es decir, suspender al disco duro en lugar de RAM, reemplace 'Suspender' al final del comando por 'Hibernate'.

Para bloquear la pantalla sin suspender, xscreensaver-command -lockfuncionará, SI escribe solo 1 guión para la opción '-bloquear', y solo si el protector de pantalla se está ejecutando. En realidad no es un comando muy útil. Usar i3lockes más fácil, pero no obtendrá un cuadro de diálogo de inicio de sesión ordenado para volver a trabajar, como lo hará cuando lo use qdbus.

LinuxRev
fuente
0

Lo siguiente funciona para mí en 16.04 (con el escritorio Gnome):

gnome-screensaver-command --lock && compsleep

También lo instalé como un atajo de teclado personalizado a través del panel de configuración de Gnome como teclas "Shift-Super-X".

christopherbalz
fuente