X

pm-hibernate: перезагрузка вместо выключения

Решил я поиграть в нормальные игры. К сожалению, на линуксе, на котором я работаю, с ними пока всё еще сложно. Поэтому было решено установить windows второй ОС, на один из hdd, специально для игр. Сказано сделано. Однако я столкнулся с тем, что полноценно перезагружаться каждый раз, очень неудобно..

Не проблема, решил заменить обычный спящий режим (suspend), гибернацией (hibernate). К сожалению, данный режим удален из декстопных ubuntu дистрибутивов (во всяком случае KDE), в связи с частыми глюками. Однако, линукс, есть линукс. В моем случае прекрасно работала команда pm-hibernate из пакета pm-utils.

Теперь, не надо было полностью перезагружаться, я отправлял комп в гибернацию и он сохранял все мое рабочее окружение - открытые окна и запущенные программы. Комп выключался. Я его включал, и в меню загрузки (grub) выбирал Windows. Дальше, попросту перезагружался в винде и попадал снова в Linux. Все мои открытые окна были на месте. Т.к. у меня SSD винты, эта процедура занимает довольно не много времени.

В какой-то момент, я подумал, что мне очень лень, каждый раз включать комп, после гибернации и было бы классно, чтоб Linux уходил в гибернацию, но в конце не выключался, а перезагружался. Да, это извращение, но в моём случае, именно оно и нужно было. Немного исследовав тему, я в очередной раз убедился, что в линуксе много всяких интересных утилит. Так, оказалось, что тот же pm-hibernate умеет это делать.

Для этого надо сделать следующее:

Убедиться, что система умеет делать reboot, для этого смотрим что написано в файле /sys/power/disk

# cat /sys/power/disk

там должно быть примерно следующее:

[platform] shutdown reboot suspend

Видим что есть reboot.

Теперь копируем файлик конфигурации в соответствующую папку:

# sudo cp /usr/lib/pm-utils/defaults /etc/pm/config.d/hibernate

Открываем его в редакторе

# sudo nano /etc/pm/config.d/hibernate

и меняем это (не забудьте раскомментировать):

# HIBERNATE_MODE="shutdown"

вот на это:

HIBERNATE_MODE="reboot"

Вот и всё, теперь по команде pm-hibernate комп отправится в гибернацию, но в конце вместо выключения, будет перезагрузка.

Так же, чтобы каждый раз не вводить root-пароль, я добавил команду в sudo:

# sudo visudo

и добавляем:

имя-пользователя ALL=(ALL) NOPASSWD: /usr/sbin/pm-hibernate

** тут имя-пользователя = ваш логин в системе

После этого, я создал директорию:

# mkdir -p ~/Scripts

и файл hibernate в ней

# nano ~/Scripts/hibernate

с таким содержимым:

#!/bin/bash
sudo pm-hibernate

дал ему права на запуск

chmod +x ~/Scripts/hibernate

и добавил его в $PATH своему пользователю:

# nano ~/.profile

добавил:

PATH=$PATH:~/Scripts

и применил к текущему окружению:

. ~/.profile

Таким образом, я могу вызывать команду как из терминала

# hibernate

так и запуском из меню.

Application Menu, Hibernate

Дальше добавил команду для запуска в Application Menu.

Вот и всё, теперь нужная операция делается в несколько кликов и уже через пару минут, я нахожусь в полноценном Windows при этом сохранив все открытые окна в Linux.

Категории: Linux
Тэги: hibernatekde