]> Sergey Matveev's repositories - stargrave-blog.git/commit
Перешёл на UCSPI-TCP вместо inetd
authorSergey Matveev <stargrave@stargrave.org>
Thu, 4 Mar 2021 09:06:58 +0000 (12:06 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 4 Mar 2021 09:06:58 +0000 (12:06 +0300)
commit4947fd8f7b389764d231cf4a9662e0a16a8d727c
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parentb93a0db99117f30453f4d7a3a97b1b30b52f0272
Перешёл на UCSPI-TCP вместо inetd

http://cr.yp.to/ucspi-tcp.html
Очередная итерация перехода на DJB-way софт! Как всегда, как и прежде, я
уже видел UCSPI-TCP и смотрел на него, но он казался не очень понятным
зачем и чем лучше inetd. Так со всем софтом DJB, даже забавно.

Сегодня почему-то осознал. Хотя началось всё с того, что мне не
понравился тот факт, что в inetd нельзя задавать на каком адресе он
должен слушать. Можно только глобально всему демону это сказать. А
желания поднимать несколько inetd и менять rc.d скрипты у меня нет.

Каждая служба из inetd заменяется на tcpserver, который слушает по TCP и
запускает указанную команду при соединении. UID/GID-ы выставлять умеет.
Ограничивать кол-во соединений умеет. Слушать на заданных адресах умеет.
Само собой запускается под daemontools. Ну и конечно же нужно патчить
его софт чтобы получить IPv6.

Что мне это дало, кроме возможности запускать нужные службы на нужных
адресах? Независимость каждой службы от другой и возможность их
перезапускать/менять не меняя централизованный конфиг и дёргая
единственного демона. Это конечно не полная замена inetd -- на каждом
порту/адресе слушает отдельная программа, тогда как inetd слушает один
за всех. Но так как демонов не много на практике, то это уж точно не
будет где либо проблемой.

Как же мне нравятся подходы DJB!