Summary: | У серверов по умолчанию д.б. выключены suspend/hibernate | ||
---|---|---|---|
Product: | Альт Сервер | Reporter: | Leonid Krivoshein <klark> |
Component: | Установка | Assignee: | Evgeny Sinelnikov <sin> |
Status: | NEW --- | QA Contact: | qa-p8 <qa-p8> |
Severity: | normal | ||
Priority: | P5 | CC: | andy, antohami, jqt4, mike, shaba, sin |
Version: | 10.1 | ||
Hardware: | all | ||
OS: | Linux |
Description
Leonid Krivoshein
2023-09-14 21:56:23 MSK
(Ответ для Leonid Krivoshein на комментарий #0) > Если кому-то надо, пусть включают, но мне о таких неизвестно. > > P.S.: antohami@ предложил сделать фичей в m-p. Не в m-p (это невозможно, так как система ставится из пакетов), а сделать installer-feature-no-sleep, которая будет маскировать hibernate.target и suspend.target postinstall-скриптом. (Ответ для Антон Мидюков на комментарий #1) > (Ответ для Leonid Krivoshein на комментарий #0) > > Если кому-то надо, пусть включают, но мне о таких неизвестно. > > > > P.S.: antohami@ предложил сделать фичей в m-p. > > Не в m-p (это невозможно, так как система ставится из пакетов), а сделать > installer-feature-no-sleep, которая будет маскировать hibernate.target и > suspend.target postinstall-скриптом. Хотя можно сделать не фичей, а в связке m-p и installer. Добавить в инсталяторе поддержку списка сервисов (postinstall.d/65-setup-services.sh), которые нужно замаскировать и через m-p их задавать. А чем эти юниты мешают? Кто их запускает на сервере? (Ответ для Alexey Shabalin на комментарий #3) > А чем эти юниты мешают? Тем, что на серверах эти функции не нужны и даже вредны, на большинстве серверных железок они просто не работают. > Кто их запускает на сервере? Они включены в systemd по дефолту, их надо маскировать. Если маскирование отдельных юнитов требует специальной ручки, то её нужно добавить. Про systemctl mask hibernate.target jqt4@ в одной задаче год назад сказал: > Я протестировал такой способ на Delta Computers Bober/Rhodeola с > alt-workstation-10.0-aarch64.iso и обнаружил недостаток - если подать > команду от root: > echo disk > /sys/power/state > то происходит переход в hibernate и компьютер отключается. Но речь была о специфичном aarch64, где suspend уже отключен в ядре. Не знаю, стоит ли придавать значение ещё и такой возможности ввести машину в спячку. По сути root может обойти маскировку, отправив руками deep, disk или что-то ещё: https://www.kernel.org/doc/Documentation/power/states.txt (Ответ для Leonid Krivoshein на комментарий #6) > Про systemctl mask hibernate.target jqt4@ в одной задаче год назад сказал: > > Я протестировал такой способ на Delta Computers Bober/Rhodeola с > > alt-workstation-10.0-aarch64.iso и обнаружил недостаток - если подать > > команду от root: > > echo disk > /sys/power/state > > то происходит переход в hibernate и компьютер отключается. > Но речь была о специфичном aarch64, где suspend уже отключен в ядре. Не > знаю, стоит ли придавать значение ещё и такой возможности ввести машину в > спячку. По сути root может обойти маскировку, отправив руками deep, disk или > что-то ещё: > > https://www.kernel.org/doc/Documentation/power/states.txt Не стоит. Я бы закрыл как NOTABAG. Не надо глобально и системно маскировать никакие сервисы. Эти сервисы автоматически никак не запускаются, их можно запустить только специально вручную. Если админ хочет это сделать, пусть делает. (Ответ для Alexey Shabalin на комментарий #8) > Я бы закрыл как NOTABAG. Не надо глобально и системно маскировать никакие > сервисы. > Эти сервисы автоматически никак не запускаются, их можно запустить только > специально вручную. Если админ хочет это сделать, пусть делает. Ошибка в том, что "из коробки" на всех серверных дистрибутивах таргеты включены. Скорее всего, дело рук systemd, а не выпускающих. Если это возможно исправить на уровне systemd, можно перевесить, и тогда включать таргеты в тех дистриубитивах, где это нужно. Это не ошибка. Так и задумано. Эти таргеты должны быть включены. Некоторые сервисы запускаются именно в этих таргетах. Или выключаются в этих таргетах. Замаскировав эти таргеты вы не сможете корректно выключить сервер. По моему опыту маскировка hibrnate.target и suspend.target никогда ранее не приводила к вышеописанным побочным эффектам, как невозможность корректного выключения компьютера. Если допустить, что маскировака этих двух таргетов всё же неидеальна, тогда нужен иной способ решения проблемы, поскольку suspend и hibernate включены в серверных дистрибутивах "из коробки". Но другого способа я не знаю. (Ответ для Leonid Krivoshein на комментарий #11) > По моему опыту маскировка hibrnate.target и suspend.target никогда ранее не > приводила к вышеописанным побочным эффектам, как невозможность корректного > выключения компьютера. Если допустить, что маскировака этих двух таргетов > всё же неидеальна, тогда нужен иной способ решения проблемы, поскольку > suspend и hibernate включены в серверных дистрибутивах "из коробки". Но > другого способа я не знаю. Другой способ в /etc/systemd/sleep.conf: AllowSuspend=no AllowHibernation=no AllowSuspendThenHibernate=no AllowHybridSleep=no (Ответ для Evgeny Sinelnikov на комментарий #5) > Если маскирование отдельных юнитов требует специальной ручки, то её нужно > добавить. Предлагаю такую реализацию: https://git.altlinux.org/people/jqt4/packages/?p=installer.git;a=commitdiff;h=e91b442efbd5790e659bad4a67ede48181171c92 https://git.altlinux.org/people/jqt4/public/?p=mkimage-profiles-rpi.git;a=commitdiff;h=0467d2260bfc84b246d4b27ecd4acfa5440472a4 |