Як я можу призупинити / перезимувати з командного рядка?


357

Як я можу призупинити чи перезимувати ноутбук за допомогою командного рядка, не встановлюючи додаткового програмного забезпечення?


2
Для Ubuntu 16.04 див. Це запитання: askubuntu.com/questions/777178/suspend-command-in-ubuntu-16-04 та його відповідьsystemctl suspend
CJlano

Відповіді:


312

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

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

Починаючи з Ubuntu 16.04, systemctlпотрібно використовувати дзвінок (див. Команду Призупинити в Ubuntu 16.04 )

systemctl suspend

і

systemctl hibernate

Новий метод

Дивіться відповідь тут на цій сторінці від Адама Паетніка щодо використання dbus . В ідеалі ви створили б ~/bin/suspendярлик / сценарій, що полегшує використання цієї дії.

Для використання над ssh, ви повинні змінити правила щодо політик, визначені Петром В. Морхом

Старий метод

Відповідно до форуму Ubuntu, ви можете використовувати такі команди:

pmi action suspend

і

pmi action hibernate

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

sudo apt-get install powermanagement-interface

Я також знайшов команди sudo pm-suspendі sudo pm-hibernateпрацювати над своєю нетбуком.


21
pm-suspend та pm-hibernate працює для мене, і це легко. Потрібно судо, але це нормально. (Знайшов ідею pmi раніше, але встановити пакет для використання призупинення - це погано ...)
user1034

1
Зауважте, що вам потрібно apt-get install powermanagement-interfaceзапустити pmi.
nealmcb

1
11.10 працює лише вечір *, також додано інтерфейс
Powermanagamament

1
не працює з моїм ubuntu 12.10. післяapt-get install powermanagement-interface
десь

1
новий метод тепер порушено див. unix.stackexchange.com/questions/153099/…
ijk

188

Дружній спосіб 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.hibernate
ResultActive=yes

Це було перевірено на UbuntuGnome 14.04 .

Примітка. Це в основному те саме, що відповідь qbi, але оновлений для роботи для більш нових версій Ubuntu, а також включаючи сплячий режим.


15
Ваша відповідь справді повинна бути першою. Це не-корінні пакети без встановлення для встановлення gnome. Подібно до!
турбо

11
Щоб Hibernate, ви можете просто замінити останній рядок зorg.freedesktop.UPower.Hibernate
Sheharyar

2
на 13.10 це все працює. Однак, екран НЕ заблокований на резюме, навіть якщо в «Безпека та конфіденційність», «Потрібен пароль для виходу з режиму» буде активований.
andreas-h

3
Не працювало для мене (Gnome 3.12, Ubuntu 14.04). Здається, інтерфейс [UPower.Suspend] був видалений, згідно з bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/…
Gui

4
Інтерфейс призупинення переміщено до входу; askubuntu.com/questions/652978
Хуршид Алам

58

Англійська

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

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

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

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

Надобраніч!

Франсуа

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 1hpar ce que vous voulez: hpour les heures, mpour les minutes, spour les secondes, dpour les jours.

Bonne nuit!

Еспаньол

Підвіска для тих, хто працює на комп’ютерах, не має жодної порції, і не вимагає отримання емісії для радіо, якщо ви бажаєте отримати сольний або термінал:

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.

Повертаєтесь, що вам 1hподобається: hpara horas, mpara minutos, spara segundos, dpara días.

¡Буена ночі!


Це мій випадок використання, який я шукаю! AFIK pm- * можна запускати без дозволів
суперпользователя

31

Для Ubuntu 12.04 LTS та Ubuntu 13.04

Щоб отримати сплячку:

sudo pm-hibernate

Щоб отримати призупинення:

sudo pm-suspend

"sudo pm-suspend" не працює на монетному дворі 13 mate :(
rsjethani

Так, я думаю, що пакет не був встановлений. шукайте ці пакети синаптично.
rɑːdʒɑ

2
Недолік цього методу полягає в тому, що якщо ви користуєтесь графічним інтерфейсом, pm-suspend НЕ заблокує ваш сеанс, що може бути небезпечно.
Рауль Салінас-Монтеагудо

1
Він також працює на ubuntu 15.10.
Searene

1
працює на 14.04 lts
Віталій Зданевич

22

Ви можете використовувати файл /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 - відповісти-timeout = 2000 \ / org / gnome / PowerManager org.gnome.PowerManager.Suspend # Hibernate dbus-send --session --dest = org.gnome.PowerManager \ --type = method_call - print-reply - відповідь-таймаут = 2000 \ / org / gnome / PowerManager org.gnome.PowerManager.Hibernate

Відповідно до цього запису в панелі запуску вищевказаний інтерфейс був видалений. Тож це більше не працюватиме в Ubuntu.


Перша ідея дає мені: "bash: echo: помилка запису: невірний аргумент" Dbus ідея дає вихід: "Помилка org.freedesktop.DBus.Error.UnknownMethod: метод" Призупинити "з підписом" "на інтерфейсі" org.gnome.PowerManager " не існує "
user1034

Я додав невелике пояснення до /sys/power/state-thing. Крім того, метод dbus був видалений з Ubuntu, тому він більше не працюватиме.
qbi

$ sudo echo -n mem > /sys/power/state-bash: /sys/power/state: Permission denied
Hubro

3
Це чудово працює. Для людей, які мають проблеми з цим методом при використанні sudo, "труба до файлу", aka ">" працює у вашій поточній оболонці, тому вона не отримує супервивітів користувачів, поки ваш ехо зробив. Вам потрібно буде скористатися sudo -iспочатку, або так, щоб sudo teeподобатися так:echo mem | sudo tee /sys/power/state
RandomInsano

12

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

12

оскільки 15.04 systemD є стандартною системою init, тож слід використовувати нову команду:

systemctl suspend

Я використовую Xubuntu 15.04. Команда systemctl suspendпризупиняє роботу комп'ютера, але не призводить до блокування екрана, навіть якщо я встановив прапорець "Блокувати екран, коли система переходить у режим сну" у меню Налаштування -> Менеджер живлення -> Захист. Хтось має ідею чому?
Teemu Leisti

Я перейшов на Xubuntu 16.04. Команда systemctl suspendвсе ще призупиняє комп'ютер. Тепер це також призводить до блокування екрана, якщо і лише якщо прапорець "Блокування екрана, коли система переходить у режим сну" в розділі Налаштування -> Менеджер живлення -> Захист.
Teemu Leisti

8

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

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

Я думаю, це не залежить від конфігурації гнома, але я цього не перевіряв.


Приємно. Або xscreensaver-command --lockзалежно від випадку.
фізома

3

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

… Що працює в 15.10 Хитрий і, можливо, утопічний і яскравий.

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

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


Мій XPS 13 9350 з Debian / Gnome був із проблемами призупинення / сплячки при закриванні кришки. Після запуску цієї команди (і еквівалента для сплячки) вона успішно перейшла в режим призупинення (і сплячки) і тепер закриває та відкриває кришку, як очікувалося!
Віктор Шредер

1

Ось як перевести віддалену машину в режим очікування над ssh:

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

/ sys / power / state працює в Ubuntu 13.10. pmi дає помилку Dbus.


0

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


Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
fossfreedom

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

Щоб перейти у сплячку, тобто призупинити жорсткий диск замість оперативної пам’яті, замініть «Призупинити» в кінці команди на «Спящий режим».

Якщо просто заблокувати екран, не зупиняючи його, xscreensaver-command -lockбуде працювати, ЯКЩО ви введете лише 1 дефіс для параметра "-блок", і лише якщо заставка працює. Насправді не дуже корисна команда. Використовувати i3lockпростіше, але тоді ви не отримаєте акуратне діалогове вікно для входу, щоб повернутися до роботи, як це буде під час використання qdbus.


0

Наступні роботи для мене працюють 16.04 (з робочим столом Gnome):

gnome-screensaver-command --lock && compsleep

Я також встановив її як користувацьку комбінацію клавіш через панель налаштувань Gnome як клавіші "Shift-Super-X".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.