Відповіді:
Традиційно 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
працювати над своєю нетбуком.
apt-get install powermanagement-interface
запустити pmi.
apt-get install powermanagement-interface
Дружній спосіб gnome - використовувати dbus.
dbus-send --system --print-reply \
--dest="org.freedesktop.UPower" \
/org/freedesktop/UPower \
org.freedesktop.UPower.Suspend
У цієї команди є дві переваги pm-suspend
.
Він заблокує ваш екран (після резюме), якщо у вас буде вибрано цю опцію в gnome.
Він не вимагає привілею 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
, ви можете просто замінити останній рядок зorg.freedesktop.UPower.Hibernate
Якщо ви хочете, щоб ваш комп'ютер призупинився на одну годину, оскільки ви хочете лягти спати, слухаючи улюблену радіостанцію, відкрийте термінал і введіть:
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 1h
par ce que vous voulez: h
pour les heures, m
pour les minutes, s
pour les secondes, d
pour 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
подобається: h
para horas, m
para minutos, s
para segundos, d
para días.
¡Буена ночі!
Для Ubuntu 12.04 LTS та Ubuntu 13.04
Щоб отримати сплячку:
sudo pm-hibernate
Щоб отримати призупинення:
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:
Відповідно до цього запису в панелі запуску вищевказаний інтерфейс був видалений. Тож це більше не працюватиме в Ubuntu.
/sys/power/state
-thing. Крім того, метод dbus був видалений з Ubuntu, тому він більше не працюватиме.
$ sudo echo -n mem > /sys/power/state
-bash: /sys/power/state: Permission denied
sudo -i
спочатку, або так, щоб sudo tee
подобатися так:echo mem | sudo tee /sys/power/state
Для відключення системи (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
оскільки 15.04 systemD є стандартною системою init, тож слід використовувати нову команду:
systemctl suspend
systemctl suspend
призупиняє роботу комп'ютера, але не призводить до блокування екрана, навіть якщо я встановив прапорець "Блокувати екран, коли система переходить у режим сну" у меню Налаштування -> Менеджер живлення -> Захист. Хтось має ідею чому?
systemctl suspend
все ще призупиняє комп'ютер. Тепер це також призводить до блокування екрана, якщо і лише якщо прапорець "Блокування екрана, коли система переходить у режим сну" в розділі Налаштування -> Менеджер живлення -> Захист.
Відповідь Адама Паетніка на dbus-надіслати відповідь не спрацювала так, як мені це було зрозуміло; машина прокинулася розблокованою, навіть якщо gnome-power-manager налаштований для блокування екрана під час пробудження. Я хочу, щоб екран був заблокований під час пробудження, і виявив, що це робить наступне:
$ gnome-screensaver-command --lock && pmi action hibernate
Я думаю, це не залежить від конфігурації гнома, але я цього не перевіряв.
xscreensaver-command --lock
залежно від випадку.
Новий інтерфейс
… Що працює в 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; відлуння -n mem> / sys / power / state) &"' пароль x@192.168.1.4: [sudo] пароль для x: Підключення до 192.168.1.4 закрите.
/ sys / power / state працює в Ubuntu 13.10. pmi дає помилку Dbus.
Особисто я експериментував із методом pmi. Однак, коли я спробував це, я отримав повідомлення про помилку: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1
. Однак, є обхідний шлях в 3 коментарі від цього повідомлення про помилку , яка , здається, працює для мене (я використовую Ubuntu 13.03).
Оновлення для тих, хто, як я, все ще працює в системах 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
.
Наступні роботи для мене працюють 16.04 (з робочим столом Gnome):
gnome-screensaver-command --lock && compsleep
Я також встановив її як користувацьку комбінацію клавіш через панель налаштувань Gnome як клавіші "Shift-Super-X".
systemctl suspend