Страницы

Поиск по вопросам

суббота, 13 июля 2019 г.

Сон после нажатия клавиши питания

Установил Debian Jessie на ноутбук. Чтобы отправлять ноутбук в сон (suspend), начал пытаться править файлы в /etc/acpi (включая поддиректорию /events), используя многочисленные советы из Google. В конечном итоге пришел к следующему поведению: при нажатии клавиши питания ноутбук уходит в сон, но, если снова ее нажать, ноутбук включается и... сразу выключается.
Уход в сон удалось задать файлом /etc/acpi/powerbtn.sh со следующим содержанием:
#!/bin/bash /usr/sbin/pm-suspend

Вопрос: как заставить ноутбук уходить в сон по нажатию на кнопку питания и выходить из него без выключения (как сейчас)?

UPD_0 (удалил второй блок с файлами из-за потери актуальности):
Я создал для файлов powerbtn.sh, powerbtn-acpi-support.sh, events/powerbtn и events/powerbtn-acpi-support вывод о своем запуске в файл и выяснил следующее: файлы в папке /etc/acpi/ - не используются, а используются только файлы из /etc/acpi/events/.
Файл events/powerbtn
event=button[ /]power action=sh /etc/acpi/events/powerbtn-log.sh
Файл events/powerbtn-log.sh
#!/bin/bash
echo "events/powerbtn" >> /home/rostislav/log.txt /usr/sbin/pm-suspend
Файл events/powerbtn-acpi-support
event=button[ /]power action=sh /etc/acpi/events/powerbtn-acpi-support-log.sh
Файл events/powerbtn-acpi-support-log.sh
#!/bin/bash
echo "events/powerbtn-acpi-support" >> /home/rostislav/log.txt /usr/sbin/pm-suspend
Вывод в лог:
events/powerbtn-acpi-support events/powerbtn
И возникает проблема: почему после выполнения powerbtn-acpi-support не перезапускается компьютер?

UPD_1: еще один парадокс. Если удалить любой файл из events/powerbtn-acpi-support или events/powerbtn - перезагрузка перестает работать!


Ответ

Ноутбук выключается потому что два демона следят за кнопкой. Один это acpid, который Вы настроили, а второй это systemd.
Происходит следующее: При нажатии кнопки systemd начинает завершение работы, а acpid в этот момент уводит комп в сон. При пробуждении завершение работы возобновляется.
Systemd настраивается тут /etc/systemd/logind.conf
# This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # Entries in this file show the compile time defaults. # You can change settings by editing this file. # Defaults can be restored by simply deleting this file. # # See logind.conf(5) for details.
[Login] #NAutoVTs=6 #ReserveVT=6 #KillUserProcesses=no #KillOnlyUsers= #KillExcludeUsers=root #InhibitDelayMaxSec=5 #HandlePowerKey=poweroff HandleSuspendKey=hibernate HandleHibernateKey=hibernate HandleLidSwitch=hibernate #HandleLidSwitch=hybrid-sleep #HandleLidSwitchDocked=ignore #PowerKeyIgnoreInhibited=no #SuspendKeyIgnoreInhibited=no #HibernateKeyIgnoreInhibited=no #LidSwitchIgnoreInhibited=yes #HoldoffTimeoutSec=30s #IdleAction=ignore #IdleActionSec=30min #RuntimeDirectorySize=10% #RemoveIPC=yes #InhibitorsMax=8192 #SessionsMax=8192 #UserTasksMax=33%
Как тут видно я настроил гибернацию на закрытие крышки. Тут можно отключить обработку кнопок. Или убирайте Ваши скрипты и настройте тут.
В Gnome через gnome-tweak-tool (или gnome-control-center в поздних версиях) можно переопределить действия на нажатие кнопки. После входа в систему Гном перенастроит systemd на указанное поведение.

Комментариев нет:

Отправить комментарий