[devel] Q: systemd policy ?

Dmitry V. Levin ldv на altlinux.org
Вс Май 6 01:48:58 MSK 2012


On Sun, May 06, 2012 at 12:16:27AM +0300, Igor Vlasenko wrote:
> On Sun, May 06, 2012 at 01:06:40AM +0400, Dmitry V. Levin wrote:
[...]
> > Файлтриггер хорош в типовых ситуациях.  Если в какой-то редкой ситуации
> > файлтриггер будет вреден, то эта вредность будет усугубляться тем, что его
> > нельзя обойти.  Таким образом, если мы идем путем реализации файлтриггера,
> > то мы должны объявить, какие ситуации являются типовыми, и фактически
> > запретить все остальные.  Тоже вариант, конечно, если хорошо все
> > проработать, но я бы не хотел оказаться в ситуации необходимости
> > обходить файлтриггер.
> 
> Понятно. С другой стороны, обходить не так сложно, как кажется.
> Упаковать в проблемный пакет touch /lib/systemd/notrigger/%servicename
> а в filetrigger добавить if ! -e /lib/systemd/notrigger/%servicename.

Проверка на существование файла не совсем подходит для случая удаления
пакета, но в целом идея интересная.

У файлтриггера есть еще одна особенность: выполняться по окончании
транзакции.  Применительно к сервисам это означает выполнение "systemctl
try-restart" не сразу по завершении обновления пакета, а некоторое время
спустя.  В течение этого времени будут работать процессы предыдущей сборки
сервиса на обновленных файлах.  Не все сервисы так умеют.  Еще хуже
обстоит дело с остановкой сервиса при удалении пакета, потому что это
желательно делать, пока существует юнит-файл и те файлы, на которые он
ссылается (например, посредством ExecStop).  Когда все файлы пакета уже
удалены, с корректной остановкой сервиса могут возникнуть непреодолимые
сложности.  Тут бы, пожалуй, лучше подошел бы pretrans filetrigger, но
у нас таких пока не реализовано.

> Проблемных пакетов может оказаться 0-1 на весь Сизиф,
> а зато в 500 пакетах спеки станут чище и добрее :)

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


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20120506/3850c36c/attachment-0001.bin>


Подробная информация о списке рассылки Devel