#linux #systemd
#linux #systemd
Вопрос:
Systemd logind может обрабатывать кнопку питания для завершения работы или перехода в спящий режим.
https://superuser.com/questions/699905/change-behavior-of-linux-power-button/699925 (см . Ответ Сэма Хейнса )
При коротком нажатии кнопки питания systemd инициирует выключение.
Вот мой вопрос, я не могу найти исходный код, в котором запускается завершение работы.
Вот systemd github:
https://github.com/systemd/systemd
Я думаю, что BIOS должен сначала узнать, что пользователь нажимает кнопку питания, но какой сигнал? какой переход, чтобы systemd также знал, что нажата кнопка питания?
Я вижу, что драйвер ядра acpi также имеет кнопку.c, кто на самом деле обрабатывает кнопку? кнопка acpi.c? systemd или acpid?
https://github.com/torvalds/linux/tree/defb53a7c790f9e37a765de8a5d830ed15e2055b/drivers/acpi
Комментарии:
1. Начните с
HandlePowerKey
опции и посмотрите, как она анализируется в исходном коде, затем проложите путь вниз, чтобы увидеть, на что это влияет, вы получите получение события.systemd
это большие источники, вы можете увидеть, чтоudev
иapicd
имеет.2. В современных системах кнопка включения — это просто программная кнопка, похожая на любую другую клавишу на клавиатуре (что касается пользовательского пространства). Таким образом, он просто сгенерирует событие «input» на одном из устройств «/ dev / input/ event *».
3. итак, systemd и acpid просто считывают событие из /dev/input/event * ?
Ответ №1:
Я думаю, что BIOS должен сначала узнать, что пользователь нажимает кнопку питания, но какой сигнал? какой переход, чтобы systemd также знал, что нажата кнопка питания? << Это зависит от дизайна кнопки питания, это может быть подключение super IO / EC или PCH.
Комментарии:
1. сигнал здесь я имею в виду программный сигнал.