systemd: как писать юниты с элегантной перезагрузкой



Разработка системы с элегантным завершением работы может оказаться той ещё пляской с бубном. В идеальном мире каждый сервис управлялся бы юнитом systemd. ExecStart запускала бы процесс, обрабатывающий SIGTERM, а ExecStop оповещало бы процесс и осуществляло блокировку, которая бы корректно завершала процесс и его ресурсы.



Однако многие программы завершаются некорректно, а то и вовсе сбивают все настройки при закрытии. В этой статье будут рассмотрены поведение systemd при завершении работы и методы написания юнитов systemd для выборочной очистки (custom cleanup) перед закрытием. Читать дальше.