Спящий режим Ubuntu - это режим энергосбережения, позволяющий отключить питание компьютера, сохранив при этом текущее состояние операционной системы. Это очень удобно: пользователь сможет включить компьютер и продолжить работу с приложениями, которые были запущены до отключения питания. Например, редактировать уже открытый текстовый документ или смотреть фильм с того же тайм-кода. Данный режим доступен как на ноутбуках, так и на настольных компьютерах. Мы будем рассматривать аспекты его использования в дистрибутиве Ubuntu 18.04 LTS.
Вообще, существует три разновидности спящего режима: режим ожидания (Suspend to RAM), режим гибернации (Hibernate, Suspend to disk) и гибридный режим (Hybrid sleep, Suspend to both). Первый режим доступен в Ubuntu по умолчанию, второй и третий - деактивированы из-за многочисленных жалоб пользователей. Мы рассмотрим все три режима для того, чтобы читатель мог выбрать наиболее подходящий для него, гарантированно работающий режим самостоятельно.
Содержание статьи
1. Режим ожидания
Режим ожидания (Suspend to RAM) или простой спящий режим Ubuntu доступен в системе по умолчанию и предусматривает отключение питания компьютера с сохранением питания оперативной памяти. Благодаря этой особенности он работает на подавляющем большинстве компьютеров, хотя и имеет очевидный недостаток, связанный с затратами энергии. Конечно же, каждый случай индивидуален, ведь любой режим энергосбережения предполагает подготовку устройств силами операционной системы с последующей передачей управления прошивке материнской платы, поэтому сложно гарантировать корректную работу даже режима ожидания.
По умолчанию режим ожидания активируется при закрытии крышки ноутбука. Также он может активироваться с помощью функциональной клавиши ноутбука (обычно это клавиша с изображением полумесяца). Кроме того, его можно включить из системного меню, но не самым очевидным образом. Для этого нужно открыть системное меню, нажать клавишу Alt, после чего кнопка завершения работы будет заменена на кнопку перехода в режим ожидания Ubuntu (Рисунок 1).
Рисунок 1. Кнопки завершения работы и перехода в режим ожидания
Вы можете прямо сейчас нажать на эту кнопку и испытать режим ожидания в деле. Если после отключения питания компьютера и последующего нажатия кнопки включения вам удастся продолжить работу с ранее запущенными приложениями, то спящий режим работает корректно. Если же после некоторого ожидания вы видите лишь чёрный экран или элементы графического интерфейса системы оказываются неработоспособными, лучше отключить спящий режим Ubuntu. Для этого в первую очередь следует запустить приложение дли изменения параметров системы с помощью крайней левой круглой кнопки с пиктограммой инструментов в системном меню (Рисунок 2).
Рисунок 2. Кнопка для изменения параметров системы
После открытия окна приложения нужно перейти на вкладку Электропитание. Здесь следует убедиться в том, что в качестве значения параметра При нажатии кнопки выключения не установлено Перевести в режим ожидания, а также нажать на строку Автоматический режим ожидания и отключить переключатель При простое (Рисунок 3).
Рисунок 3. Отключение режима ожидания
В случае закрытия крышки ноутбука всё немного сложнее: нужно установить дополнительное приложение GNOME Tweaks с помощью команды:
sudo apt-get install gnome-tweaks
Далее нужно запустить это приложение (его имя в меню Доп. настройки GNOME), перейти на вкладку Электропитание и отключить переключатель Режим ожидания при закрытии ноутбука (Рисунок 4).
Рисунок 4. Параметры электропитания в GNOME Tweaks
Теперь при закрытии крышки ноутбук не будет переходить в режим ожидания как в старые добрые времена GNOME 2.
Конечно же, редкое руководство по Linux обходится без описания консольных команд. Мы также рассмотрим команды, которые позволяют активировать режим ожидания из консоли. За управление режимами энергосбережения в Ubuntu отвечает системная служба logind из состава systemd, с которой можно взаимодействовать как посредством утилиты systemctl, так и посредством системной шины сообщений DBus. Это команда для перехода в режим ожидания с помощью утилиты systemctl:
systemctl suspend
А это вызов соответствующего метода DBus:
dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.Suspend boolean:true
2. Режим гибернации
Режим гибернации (Hibernate, Suspend to disk) деактивирован в Ubuntu по умолчанию и предусматривает отключение питания компьютера с переносом данных из оперативной памяти в раздел подкачки. Разумеется, для корректной работы данного режима размер раздела подкачки должен превышать объём доступной оперативной памяти. Кроме того, данный режим нередко работает некорректно из-за проблем с прошивками материнских плат. Ещё один его недостаток - затраты времени на запись и чтение данных. Для активации режима гибернации необходимо добавить параметр ядра ОС и создать файл конфигурации Polkit.
Начнём с параметра ядра ОС. Он предназначен для передачи имени файла устройства раздела подкачки, в котором будут сохраняться данные состояния ОС. Чтобы узнать имя этого файла, можно воспользоваться следующей командой:
swapon --show
Необходимое имя должно находиться в столбце NAME (Рисунок 5).
Рисунок 5. Список разделов подкачки системы
В случае его отсутствия у вас не активирован раздел подкачки.
Это имя следует добавить в строку параметров ядра ОС, передаваемую системным загрузчиком GRUB, в форме значения параметра resume. Для этого нужно открыть файл конфигурации /etc/default/grub и отредактировать строку GRUB_CMDLINE_LINUX_DEFAULT. Проще всего это сделать с помощью следующей команды:
gedit admin:///etc/default/grub
Предположим, что именем файла устройства раздела подкачки является /dev/sda5. Тогда строку
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
придёётся заменить на строку
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/sda5"
После этого нужно сохранить изменения в открытом файле (Рисунок 6).
Рисунок 6. Измененные параметры ядра Linux
В заключение нужно обновить конфигурацию системного загрузчика с помощью следующей команды:
sudo update-grub
Помимо этого следует создать файл конфигурации Polkit в директории /etc/polkit-1/localauthority/50-local.d/ с именем com.ubuntu.enable-hibernate.pkla и следующим содержимым:
[Enable hibernate in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit ResultActive=yes
Теперь приложение для изменения параметров системы позволит активировать режим гибернации при нажатии на кнопку включения (Рисунок 7).
Рисунок 7. Режим гибернации в меню приложения для изменения параметров системы
Это повод проверить спящий режим Ubuntu 18.04 с гибернацией. При отсутствии результата, вы можете снова деактивировать его, удалив созданный файл конфигурации с помощью команды:
sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Если же данный режим будет работать корректно, вы можете использовать кнопку включения для его активации. Если вы хотите активировать его при закрытии крышки ноутбука, вам придётся воспользоваться последовательностью специальных команд. Потому что ни приложение для изменения параметров системы, ни утилита GNOME Tweaks не позволёт сделать этого. Вот эти команды:
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'hibernate'
gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action 'hibernate'
Первая команда устанавливает режим при питании компьютера от сети, вторая - от батареи. Для проверки корректности установки значений параметров конфигурации может использоваться специальная утилита с графическим интерфейсом. Она устанавливается с помощью следующей команды:
sudo apt-get install dconf-editor
По окончании установки достаточно запустить её (имя в меню Редактор d-conf), осуществить переход org - gnome - settings-daemon - plugins - power и проверить значения параметров lid-close-ac-action и lid-close-battery-action (Рисунок 8).
Рисунок 8. Активированный режим гибернации при закрытии крышки ноутбука
Если вас не устраивает активируемый при закрытии крышки ноутбука режим гибернации, вы можете вернуть режим ожидания с помощью следующих команд:
gsettings set org.gnome.settings-daemon.plugins.power lid-close-ac-action 'suspend'
gsettings set org.gnome.settings-daemon.plugins.power lid-close-battery-action 'suspend'
Также может возникнуть вопрос: "А как активировать режим гибернации из системного меню?". Вообще, такой возможности не предусмотрено, но вы можете установить расширение GNOME Shell под названием "Hibernate Status Button". Установка расширения осуществляется с помощью Менеджера приложений Ubuntu (само расширение размещено в разделе Дополнения на вкладке Расширения GNOME Shell) (Рисунок 9).
Рисунок 9. Расширение "Hibernate Status Button" в списке расширений Менеджера приложений Ubuntu
После установки расширения в системном меню появится соответствующая кнопка (Рисунок 10).
Рисунок 10. Кнопка для перехода в режим гибернации
Если нажать на клавишу Alt при показе системного меню, кнопка перехода в режим гибернации будет заменена на кнопку перехода в гибридный режим сна.
Ну и о командах для самостоятельной активации данного режима. Это команда для перехода в режим гибернации с помощью утилиты systemctl:
systemctl hibernate
А это вызов соответствующего метода DBus:
dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.Hibernate boolean:true
3. Гибридный режим сна
Гибридный режим сна (Hybrid sleep, Suspend to both) объединяет в себе оба рассмотренных выше режима энергосбережения. Он деактивирован в Ubuntu по умолчанию и предусматривает отключение питания компьютера с копированием данных из оперативной памяти в раздел подкачки и сохранением питания оперативной памяти. Для корректной работы данного режима, как и режима гибернации, требуется раздел подкачки достаточного размера. С точки зрения пользователя это самый надёжный режим, ведь в случае разряда батареи данные состояния операционной системы могут быть извлечены из раздела подкачки.
Активация данного режима сна осуществляется вместе с активацией режима гибернации. При этом его поддержка не реализована в полной мере в окружении рабочего стола GNOME, поэтому он может быть задействован лишь посредством системной службы logind и рассмотренного выше расширения "Hibernate Status Button" после нажатия клавиши Alt.
Вы можете перевести свой компьютер в этот режим с помощью утилиты systemctl:
systemctl hybrid-sleep
А также вызвав метод DBus:
dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.HybridSleep boolean:true
Заключение
Ubuntu поддерживает три разновидности спящего режима, две из которых не доступны сразу же после установки системы. Хотя доступный по умолчанию режим ожидания и отвечает требованиям большинства пользователей, вы можете активировать остальные режимы и сами решить, какой из них больше подходит вам.
Было интересно, спасибо за информацию
Статья не полная, а если нет раздела подкачки, а как сейчас по умолчанию файл подкачки? Раздел делать не вариант, у меня ссд на 64гб, а оперативки 16гб, слишком жирно будет.
А если не убунту, а кубунту?
По умолчанию у меня выделился 1.1 гб при оперативке 8гб, с 18.04 теперь не обязательно выделять под систему отдельный раздел подкачки, принцип теперь как в Windows. Кубунту багнутая, я б не советовал ставить
привет!подскажите плиз,можно ли в убунту сделать чтобы система автоматом уходила в сон,независимо юзаешь ты её или нет?в общем чтобы принудительно уходила в сон каждые 25мин . проблема у меня в том что у меня чипсет hm70 а я поставил проц i3 и он вырубаецО каждые 30 мин
Было бы неплохо добавить информацию как сделать кнопку на рабочем столе, запускающая гибернацию командой systemctl hibernate.
СПАСИБО , ДОРОГОЙ ПРИШЕЛЕЦ!!!! (с)
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/sda5" = ЭТО его таки захибернетило!!!
Хотя по swapon система успешно показывала что свап есть и всё такое, но комп хоть убей из спячки вставал как новый, всё нещадно херя..
Спасибо, за мануал!
Помог!