После передачи прав на монтирование файловых систем systemd, многие пользователи стали испытывать проблемы с длительным ожиданием при завершении работы системы или перезагрузке. В данном HOWTO мы решим эту проблему.
Введение
Проблема заключается в зависании некоторых процессов (в моём случае это gam_server) при выходе пользователя из системы, из-за чего systemd не может размонтировать зашифрованные LUKS разделы диска и ожидает завершения зависших процессов до истечения таймаута в 180 секунд (по 90 секунд на корень и /home), а затем инициирует принудительное размонтирование.
Данную проблему можно решить двумя способами:
- снизить таймаут ожидания при размонтировании с 90 секунд например до 1 секунды, но это небезопасно и может привести к повреждению файловых систем и потере данных;
- включить новый механизм принудительного завершения пользовательских процессов при выходе из системы. Это наиболее безопасный способ, который начиная с Fedora 25 будет использоваться по умолчанию. Воспользуемся им прямо сейчас.
Настраиваем systemd
Для включения принудительного завершения пользовательских процессов, откроем один из файлов конфигурации systemd — /etc/systemd/logind.conf — в любом текстовом редакторе с правами суперпользователя и внесём свои правки:
sudo vim /etc/systemd/logind.conf
Первым делом убираем символ комментария # около строки KillUserProcesses и разрешаем автоматическое завершение процессов:
KillUserProcesses=yes
Теперь исключим процессы, запущенные с правами суперпользователя (также сначала убираем # перед строкой):
KillExcludeUsers=root
Сохраняем изменения в файле и перезагружаем систему. Следующие выключения / перезагрузки будут происходить практически мгновенно.