LINUX.ORG.RU

Использование inetd


0

0
Хочу написать простенький http-proxy. Стоит ли для такой цели использовать inetd? Насколько я понимаю, это избавляет от написания основного цикла — больше не приходится ждать самому подключения. То есть достаточно прочитать запрос из stdin, приконнектиться к серверу и вернуть ответ в stdout. Единственную проблему, которую сейчас вижу — для этого inetd требуется установить. А есть еще какие-то причины не использовать inetd? За и против, так сказать.
anonymous
inetd - это форк на каждый коннект, под нагрузкой можно и проблем огрести. Ну и еще у каждого процесса свое адресное пространство (будут проблемы если захочешь включить кэширование). Я когда-то сам писал такую же штуку (работала, кстати), там основной цикл на самом деле копеечный и несложный.
no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi
А без inetd ведь тоже форк на каждый коннект? :) Основной цикл, естественно, несложный. Вообще насколько я знаю sendmail можно и отдельно запускать и через inetd. wu-ftpd, слышал, тоже. Как это реализуется?
anonymous
()
Ответ на: комментарий от anonymous
>> Без форка больше заранее заданного кол-ва коннектов держать не получится.

С чего бы это? Динамическая память + select/poll/etc.

Deleted
()
Ответ на: комментарий от no-dashi
> под нагрузкой можно и проблем огрести

Premature optimization is the root of all evil (c).

Для простенького прокси — вполне можно использовать. И тестировать проще будет, cat request | proxy | check-result

anonymous
()
Ответ на: комментарий от anonymous
>Как это реализуется?

Уже понял — там тупо параметр командной строки указывает, как запускаться. Я то думал, оно само как-то определяет, является ли stdout сокетом.

anonymous
()
Ответ на: комментарий от no-dashi
Юзать буду как фильтр для локалхоста(резать баннеры etc.). Что-то типа Privoxy хочу написать, но попроще(без библиотеки Perlовых регулярных выражений, со стандартными). Уже сделал каркас, основной код будет в отдельной функции, которая пока выводит hello world. С параметром -d работает как демон, без - как модуль для inetd.
anonymous
()
inetd хорош для процессов, которым не надо постоянно висет и жрать ресурсы. Мы например поднимали на VPS-е фтп через него - всё равно нечасто ходим:)

Но лучше таки тогда уж демона делать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.