[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: systemd, чтоб его



On Tue, Sep 16, 2014 at 08:49:04PM +0000, Ivan Shmakov wrote:
> >>>>> Eugene Berdnikov <bd4@protva.ru> writes:
> >>>>> On Tue, Sep 16, 2014 at 06:19:19PM +0000, Ivan Shmakov wrote:
> >>>>> Artem Chuprina <ran@ran.pp.ru> writes:
> 
>  >>> Впрочем, если смотреть шире, то в данном случае это вообще
>  >>> замечательная и вся из себя прекрасная идея ленивых вычислений.
>  >>> Которая, кстати, давно частично реализована в юниксах в части
>  >>> сетевых взаимодействий (inetd).
> 
>  >>> Но полезность inetd ограничена тем, что он, во-первых, не умеет
>  >>> действовать по схеме "при первом запросе поднять сервис и оставить
>  >>> его работать" (а это довольно часто нужно), а во-вторых, не умеет
>  >>> поднять зависимости.  А в-третьих, тем, что он это умеет только для
>  >>> сети.
> 
>  >> Что примечательно, ??? inetd (почти уверен, ??? во всех его вариантах)
>  >> умеет работать не занимая PID 1.  Зачем сие потребовалось Systemd ???
>  >> совершенно не представляю.
> 
>  > AFAIK, занять pid 1 можно ровно одним способом: быть процессом,
>  > созданным ядром на шаге старта ОС после загрузки.  Никакого другого
>  > способа "занять" конкретный pid не существует, ни 1й, ни любой
>  > другой: API для этого в юниксах просто нет.
> 
>  > Соответственно, inetd никогда не "выбирает" себе pid, он просто
>  > работает под тем, под которым оказался запущен.  Причём inetd можно
>  > запустить несколько раз и несколько штук, в отличие от init'а,
> 
> 	Внимание, вопрос: а действительно ли необходимо быть init-ом для
> 	решения перечисленных выше задач?

 Что значит "быть init-ом"? Иметь pid равный 1? Для задач, которые
 упоминал А.Чуприна, конечно же, pid=1 иметь необязательно...

 Но быть сервисом, критичным для функционирования системы, без всякой
 защиты (от пейджинга, OOM-киллера, ошибочного сигнала и т.п.) просто
 глупо. Ядро юникса такую защиту init'у предоставляет, и это правильно.

>  > Нет ничего удивительного в том, что сервис, желающий стартовать всех,
>  > подменяет init.  На месте авторов я бы тоже не заморачивался
>  > поддержкой варианта "systemd + классический init".
> 
> 	Для меня, как пользователя, важно, чтобы сервис исполнял мои
> 	желания.  Желания самого сервиса меня волнуют лишь постольку
> 	поскольку.

 Желание назначить pid не равный 1 запускалкe процессов совершенно
 бессмысленно, если за этим не стоит какой-то конкретный функционал.
 Вы же ни о каком функционале не упоминали, только о значении pid'a. :)
 Такие желания беспредметны, они всегда будут игнорироваться.
-- 
 Eugene Berdnikov


Reply to: