Oleksandr Gavenko <gaven...@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 — это запуск процесса по каждой активации сокета. В смысле, по каждому запросу к оному. Для сетевых сервисов, к которым обращаются часто, очень невыгодное поведение, с большим, иногда огромным, оверхедом.