Выбор способа запуска сервера
🕛 19.06.2009, 13:53
Поскольку серверы, предназначенные для выполнения в системе, могут запускаться по-разному, возникает проблема выбора наиболее приемлемого метода запуска конкретного сервера. Большинство серверов, поставляемых в виде дистрибутивных пакетов, ориентированы на определенный метод запуска. Так, например, в состав дистрибутивного пакета может входить сценарий запуска SysV либо конфигурационный файл суперсервера, предназначенный для размещения в каталоге /etc/xinetd.d. В большинстве случаев изменять способ запуска, предусмотренный в дистрибутивном пакете, нет необходимости, но возможны ситуации, когда вам потребуется запустить сервер по-другому. В табл. 4.2 описаны преимущества и недостатки каждого из трех методов запуска сервера, рассмотренных в данной главе.Как правило, большинство серверов в системе Linux (а также программ, реализующих службы, не связанные с взаимодействием по сети) запускаются посредством сценариев SysV Обращения к некоторым серверам производятся настолько часто, что задержка, связанная с загрузкой сервера с помощью суперсервера, становится недопустимой. С точки зрения составителя дистрибутивного пакета сценарии SysV предпочтительнее локальных сценариев запуска, поскольку при использовании такого подхода можно легко добавлять
Сервер может запускаться на различных уровнях выполнения. Сервер обрабатывает запросы без задержки. Настройка осуществляется посредством переименования файлов. Сценарии предоставляют удобные средства для запуска и остановки серверов вручную
За счет выгрузки редко используемых серверов экономится память. Администратор имеет возможность управлять доступом извне
Быстрый отклик сервера. Если сценарии SysV для сервера отсутствуют, он может быть без труда запущен с помощью локальных сценариев
Серверы занимают большой объем оперативной памяти. Контроль доступа из-за пределов локальной сети затруднен
Большое время отклика сервера. Некоторые серверы ненадежно работают в подобной среде. Для сохранения данных между последовательными запросами приходится принимать дополнительные меры Плохая интеграция с инструментальными средствами настройки (chkconfig, ksysv и т. д.). Сценарии запуска различаются в разных версиях системы
новые или удалять существующие сценарии. Кроме того, считается, что некоторые серверы, например Samba, не обеспечивают достаточной надежности, будучи загруженными с помощью суперсервера. Иногда бывает необходимо, чтобы сервер сохранял информацию о запросе, например, nmbd должен запоминать имена и адреса компьютеров в сети. Такой сервер нельзя загружать посредством суперсервера, так как после удаления кода программы из памяти эта информация теряется.
Помимо сценариев SysV, суперсерверы также находят широкое применение. Во многих пакетах суперсерверы используются для запуска серверов, время загрузки которых невелико (например, серверов Telnet и FTP). В некоторых случаях такой подход можно использовать и для запуска серверов с большим объемом кода, например Apache, но загрузка Apache посредством суперсервера оправдана, только если обращение к этому серверу выполняется очень редко. Некоторые системы, например Debian, позволяют при установке сервера выбирать, должен ли он запускаться с помощью сценариев SysV или суперсервера. Если же возможность выбора отсутствует, вы можете по окончании инсталляции удалить сценарий SysV данного сервера и включить запись о нем в конфигурационный файл суперсервера.
В большинстве случаев имеет смысл использовать тот суперсервер, который поставляется в составе дистрибутивного пакета Linux (inetd или xinetd). Если вам необходимы возможности, предоставляемые только xinetd, а в вашей системе по умолчанию "используется inetd, вам придется заменить inetd на новый суперсервер. Для этого надо модифицировать сценарий SysV либо запускать новый суперсервер с помощью локального сценария запуска. Сделав это, вы должны настроить суперсервер так, как это было описано в данной главе.
Локальные сценарии запуска лучше всего подходят, если сервер первоначально был установлен для загрузки посредством сценария SysV, но оказалось, что сценарий работает некорректно. У неопытных администраторов подобная ситуация встречается тогда, когда они пытаются инсталлировать сервер, предназначенный для другой системы. В этом случае можно самостоятельно написать сценарий SysV, но если у администратора слишком мало времени или если он не имеет опыта решения подобных задач, он может воспользоваться возможностями локального сценария запуска.
Сервер можно запустить и вручную; для этого достаточно ввести в командной строке его имя. Очевидно, что такой способ применим только для проверки работы программы. После окончания отладки придется выбрать способ автоматического запуска сервера.