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

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

14 ответов

Решение

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

Системный метод

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

systemctl suspend

а также

systemctl hibernate

Новый метод

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

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

Старый метод

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

pmi action suspend

а также

pmi action hibernate

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

sudo apt-get install powermanagement-interface

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

Удобный для гномов способ - использовать 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.hibernate
ResultActive=yes

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

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

английский

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

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

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

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

Доброй ночи!

Français

Вообще-то, вы должны знать, что вам нужно знать, что вам нужно, чтобы узнать больше о радиоприемнике, о том, что вы работаете с терминалом:

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

et votre ordinateur s'endormira dans und heure. Quand vous vous réveillerez, il aura conservé en mémoire vos приложения Overtes.

Vous Pouvez Remplacer 1h Par Ce Que Vous Voulez: h ле ле heures, m налить минут, s за второе место, d лейте журналы.

Доброй ночи!

Español

Приводит к сведению информацию о том, что все в порядке и в течение определенного времени, и в то же время, когда речь идет о радиопередаче, соло и терминале, опишите:

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 пара диас

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

Для Ubuntu 12.04 LTS и Ubuntu 13.04

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

sudo pm-hibernate

Чтобы получить Suspend:

sudo pm-suspend

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

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

или через dbus:

# Приостановить dbus-send --session --dest=org.gnome.PowerManager \ --type=method_call --print-reply --reply-timeout=2000 \ /org/gnome/PowerManager org.gnome.PowerManager.Suspend # Спящий режим dbus-send --session --dest=org.gnome.PowerManager \ --type=method_call --print-reply --reply-timeout=2000 \ /org/gnome/PowerManager org.gnome.PowerManager.Hibernate

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

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

systemctl suspend

Для выключения системы (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

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

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

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

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

... который работает в 15.10 Wily, и, возможно, Utopic и Vivid.

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 "(sleep 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.

Обновление для тех, кто, как и я, все еще работает в системах 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,

Лично я экспериментировал с методом pmi. Однако, когда я попробовал это, я получил сообщение об ошибке: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1, Тем не менее, в третьем комментарии к этому сообщению об ошибке есть обходной путь, который, похоже, сработал для меня (я использую Ubuntu 13.03).

Как заблокировать экран и перевести компьютер в спящий режим (приостановить) в одну строку из командной строки (можно назначить сочетание клавиш Ubuntu)

Протестировано на Ubuntu 22.04.

Это прямо . Обратитесь к этому ответу для подробного объяснения этой команды:

Вы можете заблокировать экран и перевести компьютер в спящий режим с помощью одной команды:

       # lock the screen and put the computer to sleep
sudo true && gnome-screensaver-command -l && sudo pm-suspend

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

, как показано в основном ответе , похоже, также дает результат, аналогичный моей команде. Я не знаю, чем они отличаются и имеют ли они какие-либо разные эффекты.

Обновление: в более старых версиях Ubuntu возможно, чтоsudo systemctl suspendтакже не будет блокировать экран и требовать пароль при пробуждении, тогда как мойsudo true && gnome-screensaver-command -l && sudo pm-suspendКоманда всегда сначала блокирует экран и требует пароль после пробуждения. Однако в Ubuntu 22.04 результаты кажутся такими же. Только в браузере Edge (при использовании любого другого браузера не будет отображаться весь контент) вы можете увидеть мой чат по этому поводу с Bing AI здесь .

После пробуждения ото сна (приостановки) можно запуститьjournalctl -n 1000 -e | grep "PM: suspend"чтобы доказать, что ваш компьютер действительно спал. Опять же, подробности из моего более подробного ответа здесьсм. в моем более подробном ответе .

Через меню графического интерфейса:

Выполнение моей команды выше дает тот же результат, что и щелчок в правом верхнем углу экрана и переход к «Выключение/Выход из системы» -> Приостановить, как показано на этом снимке экрана:

16.04 у меня работает (с рабочим столом Gnome):

gnome-screensaver-command --lock && compsleep

Я также установил его в качестве пользовательского сочетания клавиш через панель настроек Gnome в качестве клавиш "Shift-Super-X".

Другие вопросы по тегам