LINUX.ORG.RU

А это, вообще-то, никак не совместимые режимы - inetd и standalone.

В inetd-режиме "сервер" читает входящие поток с stdin, и бросает данные для посылки в stdout (и, если не ошибаюсь, stderr тоже бросается в сокет).

В standalone нужно "ручками" делать bind->listen->accept->fork

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Дело в том что была статейка("Сверхсилы темной стороны UNIX" в журнальчике argc & argv) в которой говорилось что некоторые сервисы умудряються так делать.

Цитата:(..то не поленитесь и реализуйте в ней два режима работы: через inetd и посредством прямого слушания портов. Таким образом поступают большинство стандартных демонов, таких как sendmail, wu-ftp, cvs, и многие другие их сородичи.) Тем не менее я все еще нуждаюсь в полной и точной информации о сабже!

Gdanz
() автор топика
Ответ на: комментарий от Gdanz

Попробуй понять предыдущий ответ, по существу добавить нечего.

Про одиноких демонов обсуждалось многократно, см.

http://www.linux.org.ru/view-message.jsp?msgid=245840

Висящие на inetd ПРОСТО пишут на stdin/out. Если пользуешься stdio потоками, не забывай fflush делать.

В зависимости от cmdline параметров выбираешь ту или иную модель. Можешь "автоматизировать" -- если stdin/out не принадлежат терминалу (man isatty), то используешь "настоящего" демона (ЗАЧЕМ???).

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Сорри, очепятка:

>...если stdin/out не принадлежат терминалу (man isatty), то используешь "настоящего" демона (ЗАЧЕМ???).

Т.е., наоборот:

если stdin/out _принадлежат_ терминалу (man isatty), то используешь "настоящего" демона (ЗАЧЕМ???).

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