LXF171:Контролируйте отход ко сну и побудку своей системы
|
|
|
Режимы сна: Под контролем
Нейл Ботвик научит вас сделать нечто поинтереснее, чем тупо выключить свой компьютер по окончании работы. [[Файл: Bothwick opt.png |left | thumb|100px|Наш эксперт. У Нейла Ботвика по компьютеру в каждой комнате, но по соображениям безопасности он ни за что не скажет вам, где находится центральный сервер.]] Несколько лет назад популярно было утверждение, что компьютеру лучше работать 7/24. Предполагалось, что термический и механический стресс от включения системы и раскручивания дисков намного больше, чем от круглосуточной работы. Это, возможно, актуально и сейчас, но данная рекомендация появилась, когда компьютерам требовалось намного меньше энергии и она была намного дешевле. А еще есть вопрос оперативности. Компьютеры загружаются намного быстрее, чем раньше, и все равно остается приличная задержка от момента включения до момента, когда можно приступить к работе. Перевод компьютера в спящий режим будет означать, что он намного быстрее очнется, когда он снова вам понадобится, и при этом вы будете значительно экономить электроэнергию.
Стандарт ACPI определяет ряд спящих режимов, нумеруя их от S0 до S5, и этот номер описывает состояние компьютера. S0 — нормальная работа, или состояние бодрствования. S5 — выключен, но на материнскую плату все равно подается питание; это состояние, в которое входит компьютер при выключении или удержании нажатой кнопки питания, но без отключения от сети устройства питания. Нас интересуют S3 и S4. S3 именуется Standby [Ожидание], Sleep [Сон] или Suspend to RAM [Приостановка в ОЗУ], в зависимости от терминологии, принятой ОС; мы будем называть этот режим Suspend. Как и следует из названия, состояние компьютера сохраняется в ОЗУ, питание которого остается подключенным. Питание CPU и других устройств отключено. Это самый быстрый способ отправить компьютер в спящий режим и пробудить его снова, поскольку работает только ОЗУ. Недостаток в том, что некая энергия все же потребляется для снабжения ОЗУ. Для настольного ПК это нормально; но если надолго оставить в таком состоянии ноутбук, батарея постепенно разрядится и вы потеряете свои данные, и придется вам давать команду fsck для своего жесткого диска при следующей загрузке.
S4, именуемое обычно Hibernate [Спячка] или Suspend to disk [Приостановка на диске], записывает состояние памяти и CPU на жесткий диск перед выключением. Это дольше, но после выключения компьютер потребляет столько же энергии, что и в состоянии S5 — почти ничего. Если вы хотите знать, зачем тут вообще питание, ответ такой: материнской плате нужна энергия, чтобы разбудить его после нажатия на кнопку питания, через сеть или из BIOS. Мы будем называть этот режим Hibernate. Желая вызвать режим Suspend или Hibernate, вы можете сделать это, написав псевдо-файл на /sys/power/state, используя значения mem или disk.
echo “mem” >/sys/power/state
echo “disk” >/sys/power/state
Для этого надо быть суперпользователем-root, и тем из вас, кто использует sudo, придется прибегнуть к некой хитрости, чтобы сделать это от имени root. Обычное
sudo echo “mem” >/sys/power/state
не сработает, выдав ошибку отказа в доступе, поскольку при запуске пользователем команды произошла ошибка переадресации. Используйте
sudo sh -c “echo mem >/sys/power/state”
Пробуждение
При погружении в сон состояние вашей системы сохраняется в первом же доступном разделе подкачки [swap]. Чтобы заново загрузиться, вы должны показать ядру, где хранится образ возобновления при перезагрузке, добавив
resume=/dev/sdaN
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
в опции ядра вашей программы загрузки. Вы можете или создать отдельную опцию в меню загрузки для возобновления работы, или добавить ее к настройкам по умолчанию. Это безопасно, потому что если раздел swap не содержит действующего образа сна — а так и будет, если вы ранее выключали компьютер — то ядро проигнорирует эту опцию и загрузится как обычно. Альтернатива — если вы компилируете собственное ядро, то можете прописать раздел возобновления в разделе Управление энергопотреблением [Power managemen] в разделе Возобновления по умолчанию [Default resume partition]. Вы также можете вызвать полную перезагрузку после сна, добавив в опции ядра noresume, однако это чревато проблемами, поскольку компьютер не выключался ранее должным образом, будучи вместо этого погружен в сон.
Вы, наверное, уже недоумеваете, какой вам толк от всех этих подробностей, если можно просто выбрать Hibernate или Suspend в меню рабочего стола. Основная суть в том, что вы можете сделать нечто большее, чем просто погрузить свой компьютер в сон. Фактически, можно запустить любую команду как перед приостановкой работы, так и после ее возобновления. Возьмем в качестве примера ноутбук, которым вы пользуетесь дома. Вы вошли в систему; возможно, gpg-agent сохранил в памяти ваши ключи, если вы подписывали почту, вы соединены с беспроводной сетью или, возможно, смонтировали файловую систему. Итак, вы погружаете компьютер в сон, кладете его в сумку и идете на работу. Как минимум, у вас будут задержки начала работы с ним, потому что сетевые файловые системы недоступны — особо злобствует по этому поводу NFS. В худшем случае — ваш ноутбук украдут, и все данные будут раскрыты. Если, вместо того, чтобы использовать функцию приостановки работы вашего ноутбука, вы настроите горячую клавишу для запуска скрипта, то сможете позаботиться об этой ситуации. Вот пример:
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
#!/bin/sh
“$(basename $0)” == “suspend” && SLEEP=”mem” || SLEEP=”disk”
# gpg-agents забывают пароли, если им послан сигнал SIGHUP
pkill -HUP -f ‘gpg-agent --daemon’
# Блокировка рабочего стола
DISPLAY=”:0” su nelz -c slock &
# Размонтирование сетевых файловых систем
umount -a -t nfs -t cifs
# Перевод wicd оффлайн
/usr/share/wicd/scripts/50-wicd-suspend.sh
# Сон или спячка
echo ${SLEEP} >/sys/power/state
# Запустить при пробуждении
/usr/share/wicd/scripts/80-wicd-connect.sh
Сохраните скрипт как /usr/local/bin/suspend и создайте символическую ссылку на /usr/local/bin/hibernate; таким образом один скрипт может использоваться для обеих функций в зависимости от имени, использованного для его вызова, то есть как раз того, что делает первая строка.
Скрипт выполняет несколько простых операций: он отправляет SIGHUP в gpg-agent, заставляя сбросить все хранящиеся фразы-пароли; затем он блокирует рабочий стол (я здесь использую очень простой slock, но вы также можете запустить скрин-сейвер или функцию блокировки с помощью вызова dbus). Затем он размонтирует все файловые системы NFS и Samba, выводит сетевой режим в оффлайн, потому что можно разблокировать из другого места (в этом примере использован wicd, но то же самое можно сделать и с помощью Network Manager), и, наконец, пишет или mem, или disk в /sys/power/state.
В этот момент скрипт встает на паузу, потому что компьютер спит, но после пробуждения он продолжит свою работу, которая в данном примере возобновит соединение с любой доступной сетью. Сюда можно подставить что угодно, для запуска любой команды, которую вы ни пожелаете, после возобновления работы. На рабочем столе, совместимом с Freedesktop (а большинство из них именно таковы), вы можете заблокировать скрин-сейвер с помощью такой команды:
dbus-send –dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock
Эта команда, так же, как и в приведенном выше примере со slock, должна быть запущена, когда пользователь запускает рабочий стол. Вызов скрипта suspend с помощью горячей клавиши, определенной на рабочем столе — именно тот случай, но если вы используете acpid, то нужно настроить переменную DISPLAY и указать пользователя, запускающего команду (так как acpid запускает команду от имени root), таким образом:
DISPLAY=:0 su username -c dbus-send --dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock
Есть и другие способы разбудить спящую машину. В большинстве BIOSов есть опция побудки компьютера в заданное время. Это означает, что вы можете, например, оставить свой сервер спать ночью, но разбудить его для работы со скриптами резервного копирования, когда другие компьютеры будут запланированы на из запуск.
Wake-on-LAN
Более удобен Wake-on-LAN, который позволяет разбудить спящий компьютер через сеть. На компьютере, который вы погрузили в сон, не нужно делать ничего, кроме как убедиться, что Wake-on-LAN включено в настройках BIOS. На другом компьютере в сети установите пакет wakeonlan и разбудите компьютер командой
wakeonlan -i 192.168.1.255 aa:bb:cc:dd:ee:ff
где IP-адрес — это адрес вещания для вашей сети (обычно это первые три цифры, общие для вашей сети, за которыми следует 255), а разделенная двоеточиями строка — MAC-адрес адаптера Ethernet на том компьютере, который вы намерены разбудить. Это разошлет «волшебный пакет» Wake-on-LAN всем компьютерам в адресном диапазоне, но к жизни вернется только один, с тем самым MAC-адресом. Итак, вы можете дать выспаться одному из компьютеров в своей LAN, даже если он потом понадобится другому компьютеру, потому что этот другой компьютер сможет при необходимости сам его разбудить. |