Ускоряем завершение работы Fedora 24

После передачи прав на монтирование файловых систем systemd, многие пользователи стали испытывать проблемы с длительным ожиданием при завершении работы системы или перезагрузке. В данном HOWTO мы решим эту проблему.

Введение

Проблема заключается в зависании некоторых процессов (в моём случае это gam_server) при выходе пользователя из системы, из-за чего systemd не может размонтировать зашифрованные LUKS разделы диска и ожидает завершения зависших процессов до истечения таймаута в 180 секунд (по 90 секунд на корень и /home), а затем инициирует принудительное размонтирование.

Данную проблему можно решить двумя способами:

  1. снизить таймаут ожидания при размонтировании с 90 секунд например до 1 секунды, но это небезопасно и может привести к повреждению файловых систем и потере данных;
  2. включить новый механизм принудительного завершения пользовательских процессов при выходе из системы. Это наиболее безопасный способ, который начиная с Fedora 25 будет использоваться по умолчанию. Воспользуемся им прямо сейчас.

Настраиваем systemd

Для включения принудительного завершения пользовательских процессов, откроем один из файлов конфигурации systemd — /etc/systemd/logind.conf — в любом текстовом редакторе с правами суперпользователя и внесём свои правки:

sudo vim /etc/systemd/logind.conf

Первым делом убираем символ комментария # около строки KillUserProcesses и разрешаем автоматическое завершение процессов:

KillUserProcesses=yes

Теперь исключим процессы, запущенные с правами суперпользователя (также сначала убираем # перед строкой):

KillExcludeUsers=root

Сохраняем изменения в файле и перезагружаем систему. Следующие выключения / перезагрузки будут происходить практически мгновенно.