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: