Как я могу приостановить / спящий режим из командной строки?

285

Как я могу приостановить или спящий ноутбук с помощью командной строки без установки дополнительного программного обеспечения?

    
задан user1034 09.08.2010 в 22:24
источник

12 ответов

232

Традиционно ubuntu поддерживает довольно тупой метод приостановки и спящего режима. Ни одна из них не будет хорошо интегрироваться с другими приложениями, а иногда даже не работать на некоторых машинах. Новый метод не требует root и уведомляет все приложения, прослушивающие силовые события.

Метод Systemd

Начиная с Ubuntu 16.04, необходимо использовать вызов systemctl (см. Приостановить команду в Ubuntu 16.04 )

systemctl suspend

и

systemctl hibernate

Новый метод

См. ответ здесь, на этой странице от Адама Паэтника относительно использования dbus . В идеале вы должны создать ~/bin/suspend shortcut / script, который упростит использование этого действия.

Для использования по ssh вы должны изменить правила политики, как описано Peter V. Mørch

Старый метод

В соответствии с форумом Ubuntu вы можете использовать следующие команды:

pmi action suspend

и

pmi action hibernate

Для этого требуется установить пакет управления powermanagement-interface (не проверен).

sudo apt-get install powermanagement-interface

Я также нашел команды sudo pm-suspend и sudo pm-hibernate для работы с моим нетбуком.

    
ответ дан txwikinger 09.08.2010 в 22:32
источник
182

Другим способом gnome является использование dbus.

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

Для этой команды есть два преимущества: pm-suspend .

  1. Он заблокирует ваш экран (после возобновления), если этот параметр выбран в gnome.

  2. Он не требует привилегий root, поэтому его легко добавить в виде сочетания клавиш, например.

Как упоминалось в комментариях об обмене Suspend в последней строке на Hibernate , создается команда hibernate:

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

Если спящий режим выбрасывает Error org.freedesktop.UPower.GeneralError: not authorized , вашему пользователю может не разрешаться спящий режим. Измените или создайте /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla , поэтому он содержит следующий раздел: (источник)

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

Это было протестировано на UbuntuGnome 14.04 .

Примечание. Это в основном то же самое, что и ответ qbi, но он обновлен для работы в более новых версиях Ubuntu, а также в спящем режиме.

    
ответ дан Adam Paetznick 03.05.2012 в 22:40
48

английский

Если вы хотите, чтобы ваш компьютер приостановил работу за один час, потому что вы хотите пойти спать, слушая любимую радиостанцию, откройте терминал и введите:

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

и ваш компьютер засыпает через 1 час. Когда вы проснетесь, он сохранит ваши открытые изображения и все ваши вещи.

Вы можете заменить 1h на то, что вы хотите: h за часы, m за минуты, s за секунды, d за дни.

Спокойной ночи!

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 applications ouvertes.

Vous pouvez remplacer 1h par ce que vous voulez: h pour les heures, m pour les minutes, s pour les secondes, d pour 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 despiertes, allí habrán quedado abiertas tus imágenes y todas tus cosas.

Puedes reemplazar 1h por lo que desees: h para horas, m para minutos, s para segundos, d para días.

¡Buenas noches!

    
ответ дан greg 18.01.2012 в 09:31
30

Для Ubuntu 12.04 LTS и Ubuntu 13.04

Чтобы получить спящий режим:

sudo pm-hibernate

Получить Suspend:

sudo pm-suspend
    
ответ дан Ten-Coin 14.09.2012 в 15:45
22

Вы можете использовать файл /sys/power/state для этого. Сначала выясните, какие состояния поддерживаются:

[email protected]:_> cat /sys/power/state
standby mem disk

[email protected]:~> echo -n mem > /sys/power/state  # suspend to ram
[email protected]:~> echo -n disk > /sys/power/state  # suspend to disk

или через dbus:

    # Приостановить     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

В соответствии с этой записью в панели запуска вышеупомянутый интерфейс был удален , Поэтому в Ubuntu это не сработает.

    
ответ дан qbi 09.08.2010 в 22:35
11

Для выключения системы (14.04) из командной строки (или комбинации клавиш) используйте:

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

Я нашел это, играя с gdbus, который может отображать доступные интерфейсы:

Перечислить службы, доступные на шине:

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

Чтобы найти методы:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
    
ответ дан simonltwick 07.08.2014 в 17:08
8

Ответ на dbus-ответ Адама Паэтница не работал, как предполагалось для меня на ясном; машина разбудила разблокировку, хотя диспетчер gnome-power установлен для блокировки экрана при пробуждении. Я хочу, чтобы экран был заблокирован при пробуждении, и обнаружил, что следующее:

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

Я предполагаю, что это не зависит от конфигурации gnome, но я не тестировал это.

    
ответ дан Aryeh Leib Taurog 15.05.2012 в 18:07
8

, так как 15.04 systemD - это стандартная система init, поэтому есть новая команда, которая будет использоваться:

systemctl suspend
    
ответ дан k1l 27.11.2015 в 14:36
2

Новый интерфейс

..., который работает в 15.10 Уайли и, возможно, Утопический и Яркий.

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

Полезно это не требует sudo, в отличие от команды pm-suspend .

    
ответ дан Gringo Suave 18.11.2015 в 19:09
1

Вот как поместить удаленный компьютер в режим ожидания по ssh:

ssh -t 192.168.1.4 'sudo nohup &>/dev/null bash -c "(sleep 1; echo -n mem >/sys/power/state) &"'
[email protected]'s password: 
[sudo] password for x: 
Connection to 192.168.1.4 closed.

/ sys / power / state работает в Ubuntu 13.10. pmi дает ошибку Dbus.

    
ответ дан user229115 27.12.2013 в 06:09
0

Лично я экспериментировал с методом pmi. Однако, когда я попробовал это, у меня появилось сообщение об ошибке: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1 . Тем не менее, существует обходное решение в третьем комментарии < a href="https://bugs.launchpad.net/ubuntu/+source/powermanagement-interface/+bug/1176829"> этот отчет об ошибках , который, похоже, работал для меня (я использую Ubuntu 13,03).     

ответ дан TSJNachos117 31.08.2013 в 07:11
0

Обновление для тех, кто, как и я, по-прежнему работает над системами KDE / Ubuntu 14.04. Чтобы заблокировать использование qdbus и приостановить использование dbus . Полная команда:

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

Чтобы спящий режим, т. е. приостановить работу с жестким диском вместо ОЗУ, заменить «Suspend» в конце команды на «Hibernate».

Чтобы просто заблокировать экран без приостановки, xscreensaver-command -lock будет работать, если вы набираете только 1 дефис для опции «-lock», и только если заставка работает. На самом деле это не очень полезная команда. Использование i3lock проще, но тогда вы не получите аккуратного диалогового окна входа в систему, чтобы вернуться к работе, как при использовании qdbus .

    
ответ дан LinuxRev 26.05.2017 в 14:28