LINUX.ORG.RU

debian testing нет реакции на кнопку выключения из tty

 


0

1

привет, котятки!
имею debian testing с sysvinit (да, я ретроград, хейтер и черт знает кто еще), стоит elogind из devuan, поверх этого lightdm с xfce.
так вот, при нажатии на кнопку выключения в tty-консоли... ничего не происходит((
в /etc/elogind/logind.conf есть строка
HandlePowerKey=poweroff
но ему как-то пофиг.
накатил пакет acpid, тот подтянул acpi-support-base, в них есть все нужные скрипты, по идее, - но тоже нифига.
команда acpi-listen, или как там ее, при нажатии на сабжевую кнопицу выдает событие power/button, т.е. оно где-то есть, только чертов демон его почему-то не обрабатывает?
и самое интересное: при нажатии в иксах вызывается хфсешный диалог выключения. через что там его считывает хфце, я как-то хз))
систему ставил с нетинсталла по минимуму, дальше мусор ручками тащил - может, еще чего надо?
PS: чуть не забыл, по loginctl poweroff все радостно выключается без лишних вопросов. т.е. elogind в принципе работает по этой части

заработало! короче, пока читал man logind.conf, обратил внимание на вот такое примечание:

Only input devices with the "power-switch" udev
tag will be watched for key/lid switch events.
HandlePowerKey= defaults to "poweroff".

стал гуглить, что за тэг такой и где его взять, наткнулся на вот это:
https://www.stderr.nl/Blog/Hardware/RaspberryPi/PowerButton.html
читаем раздел «Shutdown using systemd-logind».
в общем, суть в том, что в пакет elogind забыли покласть/положить следующий файл:
https://github.com/systemd/systemd/blob/5b987a4e3e98f30b324ce75e07116ea8908bd...
вот такого содержания:
ACTION=="remove", GOTO="power_switch_end"

SUBSYSTEM=="input", KERNEL=="event*", ENV{ID_INPUT_SWITCH}=="1", TAG+="power-switch"
SUBSYSTEM=="input", KERNEL=="event*", ENV{ID_INPUT_KEY}=="1", TAG+="power-switch"

LABEL="power_switch_end"

то бишь elogind слушает девайсы с этим тэгом, а правило для udev, которое оный тэг добавляет, не завезли.

а acpid не нужон, да и он все равно, как выяснилось, смотртит на наличие dbus-сервиса logind и при наличии оного тихо exit 0.
короче, положил в /etc/udev/rules.d/, все завелось. и при запуске теперь elogind срет в консоль списком девайсов, на которых он listening to power button events

заведу баг на elogind в devuan, пусть файлик притырят. уж не знаю, в апстриме забыли или в devuan, но в issues на жидхабе апстрима про это ни слова...

PerdunJamesBond ()
Последнее исправление: PerdunJamesBond (всего исправлений: 1)