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

Re: ifupdown / systemd



Oleksandr Gavenko <gavenkoa@gmail.com> writes:

> Раньше считалось что init скрипт плохо написан если не прибивал детишек на
> stop.
>
> Давайте посмотрим на 
>
>   http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html
>     Linux Daemon Writing HOWTO, 2004
>
>   4. Basic Daemon Structure
>
>     Fork off the parent process
>     Change file mode mask (umask)
>     Open any logs for writing
>     Create a unique Session ID (SID)
>     Change the current working directory to a safe place
>     Close standard file descriptors
>     Enter actual daemon code
>
> Парадигма сменилась - теперь systemd валит детишек через cgroup.
>
> Т.е. отменяют шаг:
>
>     Create a unique Session ID (SID)

Если внимательно почитать доку — гораздо больше.  Другое дело, что
только на одной платформе.

> Кстати подскажите кто нибудь - активация через сокет:
>
>   If your daemon provides services to other local processes or remote clients
>   via a socket, it should be made socket-activatable following the scheme
>   pointed out below. Like D-Bus activation, this enables on-demand starting of
>   services as well as it allows improved parallelization of service start-up.
>   Also, for state-less protocols (such as syslog, DNS), a daemon implementing
>   socket-based activation can be restarted without losing a single request.
>
> Это не то же самое что и inetd?

Нет.  inetd — это запуск процесса по каждой активации сокета.  В смысле, по каждому запросу к оному.  Для сетевых сервисов, к которым обращаются часто, очень невыгодное поведение, с большим, иногда огромным, оверхедом.


Reply to: