Subject: Re: bind9-resolvconf.service



Yuriy M. Kaminskiy -> [email protected] @ Tue, 01 Aug 2017
22:42:55 +0300:

>>> [Service]
>> RemainAfterExit=yes
>>> ExecStart=/bin/sh -c 'echo nameserver 127.0.0.1 | /sbin/resolvconf -a
>>> lo.named'
>>> ExecStop=/sbin/resolvconf -d lo.named
>>
>> с этим флагом работает.

> ...а ещё оно должно быть
> Type=oneshot
> (по умолчанию - simple).

Ага, я уже нащупал. И когда нащупал, догадался, почему так. Не факт, что
правильно.

В очередной леденящий душу раз спрошу: знает ли кто-нибудь нормальную
документацию на unit'ы systemd? То, что сходу гуглится, в качестве
документации не годится. Список значений Type много где есть, но как тот
же oneshot воспринимается _снаружи_ (и _почему_ в этом месте таки надо
RemainAfterExit=yes) там не написали.

Вот, например, много где описаны оверрайды (это когда хочется подправить
что-то, не копируя весь юнит). В одном месте мне попалось описание
грабли, видимо, автор наступил. И ни в одном - как оно вообще работает.

Судя по названию (override, а не append), оно должно заменять значения
параметров. Но судя по описанной грабле (нет, там нету описания работы),
оно их добавляет (что, прямо скажем, удобнее), но если указать пустое
значение, то сбрасывает то, что было (так можно сбросить старое
значение).

А там при этом бывают параметры, которых можно указать несколько
(After), а бывают, которые положены одна штука (ExecStart), т.е. к
которым по семантике добавлять нельзя... Тот наступатель наступил именно
на примере ExecStart.



Programming list archiving by: Enterprise Git Hosting