Я вижу здесь: https://httpd.apache.org/docs/current/invoking.html
«Если для прослушивания, указанного в файле конфигурации, по умолчанию установлено значение 80 (или любой другой порт ниже 1024), тогда необходимо иметь привилегии root для запуска apache, чтобы он мог связываться с этим привилегированным портом.
После запуска сервера и выполнения нескольких предварительных действий, таких как открытие файлов журнала, он запустит несколько дочерних процессов, которые будут прослушивать и отвечать на запросы от клиентов. Основной процесс httpd продолжает работать от имени пользователя root, но дочерние процессы работают от имени пользователя с меньшими привилегиями. "
Вопрос: как дочерний процесс может сделать это? Входящий запрос поступает на порт 80, к которому теперь привязан мастер.
Я предполагаю, что главный процесс вызовет вызов bind (), и дочерний процесс сможет затем выполнить вызов listen () для привязанного сокета? Или главный сервер передает дочерним элементам входящие данные?
Первый пер: https://httpd.apache.org/docs/current/invoking.html
ковенер говорит: "Обычно слуховое сокет наследуется детьми, когда они вилкой. Они могут либо попытаться вызвать на нём accept, либо подраться из-за мьютекса и позволить одному из них попасть в accept()"
Далее,
http://httpd.apache.org/docs/current/misc/perf-tuning.html
Там также сказано: "...после принятия соединения, поток слушателя пробуждает рабочий поток для выполнения обработки запроса"
Для полноты, так как это процесс слушателя, я буду считать, что он уже слушал()"
. Этого вызова нет в приведенном выше выводе строк
.