
Чтобы исправить некоторые проблемы с надежностьюприостановить-в-оперативную память(при закрытии крышки ноутбука) я хочу узнать, какое программное обеспечение за это отвечает. Чтобы я мог решить следующие проблемы:
- "suspend-to-ram" работает хорошо, зависит от состояния входа и tty3. У меня есть и wayland, и Xorg, а иногда и консоль, работающая на 1-5 tty
- похоже, что
systemd
logind
некоторые из моих DE (наиболее заметныеGnome3
иxfce
) задействованы. - при повторном открытии крышки и возобновлении с последнего
suspend-to-ram
этаgdm
штука не позволяет выполнить «приостановку в оперативную память», заставляя меня заблокировать ее до того, как появится еще один шанс (это ненадежно) «приостановки в оперативную память», что само по себе занимает до 5+ секунд (что я могу сказать по тому, что в этот самый момент воспроизводится звук, от закрытия крышки до выключения музыки легко проходит от 7 до 10 секунд)
Я помню (из предыдущего опыта решения похожей проблемы, связанной с приостановкой работы в оперативной памяти), что «современный» Linux с Gnome
и systemd
и loginkit
, и logind
был склонен к проблемам с приостановкой работы, поскольку различное программное обеспечение сообщало «крышка закрыта» и в то же время «запрещало приостановку работы в оперативной памяти».
Хороший ответ, по крайней мере, перечислил бы программное обеспечение, которое участвует в приостановке в RAM. Лучше бы он также кратко обрисовал порядок и роль, которую играет различное программное обеспечение.
При условии, что это может зависеть от init
среды рабочего стола, меня больше всего интересуют ответы, связанные с
- системд
- дебиан / убунту 18.04
- Гном 3
Лучшим ответом также было бы то, как я могу в лучшем случае отключить любое программное обеспечение и связанное с графическим интерфейсом устройство.
и другой "полезный" автоматизм, как по мне, просто базовый (но работающий):
root@box$ while sleep 1; do
grep "closed" /proc/acpi/button/lid/LID0/state && {
systemctl suspend
sleep 3
}
done
было бы достаточно.
В любом случае, основная информация, которую пытается получить этот вопрос, такова (какое программное обеспечение участвует в задаче «проверки состояния крышки» и, следовательно, «приостановки в ОЗУ»?)
решение1
Итак, судя по всему, acpid
он работает в вашей системе (см. комментарии), вероятно, именно этот программный компонент управляет управлением питанием.
Он настраивается через /etc/acpi/
. Например, в моем Debian у меня есть /etc/acpi/events/lidbtn
файл конфигурации, который используется для определения того, как реагировать на каждое событие, связанное с крышкой.
Это содержит:
# /etc/acpi/events/lidbtn
# Called when the user closes or opens the lid
event=button[ /]lid
action=/etc/acpi/lid.sh
Затем я хочу добавить некоторые действия, которые будут выполняться во время закрытия крышки, мне просто нужно добавить их в нужное место оболочки /etc/acpi/lid.sh
. Существует множество переменных окружения, acpid
которые могут помочь определить тип события.
Более подробную информацию можно найти на странице руководства acpid.