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

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

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

Метод Systemd

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

systemctl suspend

и

systemctl hibernate

Новый метод (устаревший)

Устаревший около Ubuntu 16.04; используйте systemctl вместо этого, как указано выше.

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

Для использования по ssh вы должны изменить правила policykit, изложенные Питером В. Мерхом

Старый Метод

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

pmi action suspend

и

pmi action hibernate

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

sudo apt-get install powermanagement-interface

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

Удобный для 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 создает команду гибернации:

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.hibernateResultActive=yes

Это было проверено на Убунтугном 14.04.

Примечание: Это в основном то же самое, что и ответ qbi, но обновлено для работы с более новыми версиями Ubuntu, а также для включения режима гибернации.

Английский

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

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

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

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

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

Француз

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

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

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

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

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

Испанский

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

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

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

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

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

Чтобы перейти в спящий режим:

sudo pm-hibernate

Чтобы получить приостановку:

sudo pm-suspend

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

user@linux:_> cat /sys/power/statestandby mem diskroot@linux:~> echo -n mem > /sys/power/state  # suspend to ramroot@linux:~> echo -n disk > /sys/power/state  # suspend to disk

или через dbus:

# Приостановить dbus-отправить --session --dest=org.gnome.PowerManager \ --type=method_call --print-reply --reply-timeout=2000 \ /org/gnome/PowerManager org.gnome.PowerManager.Приостановить #Гибернацию dbus-отправить --session --dest=org.gnome.PowerManager \ --type=method_call --print-reply --reply-timeout=2000 \ /org/gnome/PowerManager org.gnome.PowerManager.Зимовать

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

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

dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.Suspend 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

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

systemctl suspend

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

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

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

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

...который работает в 15.10 Хитро, и, возможно, утопично и ярко.

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

К счастью, для этого не требуется sudo, в отличие от pm-suspend команда.

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

>>ssh -t 192.168.1.4 'sudo nohup &/dev/null bash -c "(режим сна 1; echo -n mem /sys/power/state) &"'x@192.168.1.4 пароль пользователя: [sudo] пароль для x: Соединение с 192.168.1.4 закрыто.

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

Для Ubuntu 16.04 смотрите Этот вопрос: Suspend command in Ubuntu 16.04 - Ask Ubuntu и его ответ systemctl приостановить