Расскажите реальные случаи пользы от inetd?

Добрый день, хабражители!


Поясните пожалуйста возможнсти применения inetd. В теории много красивых слов «суперсервер» и т.д.

Но насколько полезен это инструмент в реальной практике?

Единственное теоретическое преимущество, которое мне удалось разглядеть — это экономия ресурсов ПК, но только ДО первого запроса к запускаемым демонам. После запроса мы получаем теоретический недостаток от поедания ресурсов уже самим inetd и уже не нужным. Я пока не нашёл функции остановки демонов, когда те своё отработали и уже не нужны. В итоге ощутимой пользы от его использования я пока не вижу.

В православном Debian большинство демонов с которыми я сталкивался поддерживают лишь стандартный «inet.d» механизм запуска и работы. Единственный демон, где сборщики бинарных пакетов предусмотрели интеграцию из коробки с inetd — это постепенно стареющая Samba 3.


С другой стороны его описание относительно часто встречается в технической литературе и прочих источниках. И, скорее всего, неспроста.


Поясните пожалуйста, где я не прав. Это рудиментный пакет или я просто невнимательно читал HOWTO?

Поделитесь реальными случаями.
  • Вопрос задан
  • 4128 просмотров
Решения вопроса 1
DmZ
@DmZ
inetd (и его модификация xinetd) не работает с демонами :) А по-сути есть «суперсервер» который позволяет «упростить» разработку сетевых серверов. Он запускает копию сервера при получении соединения и перенаправляет весь траффик на stdin/out сервера.
Т.е., при стандартном подходе, сетевой сервер будет проходить через такие этапы: запустится, демонизироваться, ожидать соединение, получить соединение, обработать данные, закрыть соединение, перейти к ожиданию.
А при inetd подходе будет: запуститься, обработать данные, выйти

Это удобно если нужно выставить в мир какие-то управлящие скрипты, которые работают с консолью, тогда к ним можно будет соединяться телнетом по tcp. У меня так одно время висели скрипты управления лабами по циске — запуск/остановка виртуалок, отображение состояния.

Простейший пример:
#!/bin/bash

echo -n "Test program :) input somethig: "
read VAR
echo "Your input: $VAR"
echo "Bye"

Будет работать как с консоли так и через telnet если повесить его на inetd.

Еще удобно использовать xinetd для форвардинга портов каких-нить некритичных сервисов, чтобы не заморачиваться с NAT/файрволом.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
На роутере Zyxel Keenetic значительно экономил память, запуская вебсервер через mini_inetd, так как вебсервер обслуживал админку и нужен был очень редко, если его просто так запустить — висит и постоянно кушает память, которой на роутере и так кот наплакал. Через mini_inetd — замечательно работал, запускался только на время обработки запросов.
Ответ написан
Комментировать
Вместо inetd лучше использовать xinetd, потому что inetd очень старый и «дырявый». xinetd лишен части этого.

Одно из преимуществ в однотипном конфигурировании сервисов через него. Гибкость есть, но разного вида лимиты и прочее можно настраивать и в standalone режиме сервисов, как правило.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы