Рис. 4.6. Для того чтобы задать особенности работы сервера, надо щелкнуть мышью на его имени
Как ksysv, так и tksysv выводит слева в окне список сценариев запуска SysV; в остальной части окна отображаются списки серверов, запуск которых разрешен или запрещен на разных уровнях выполнения. После щелчка на пункте списка Available Services отображается диалоговое окно, содержащее описание сервера и управляющие элементы, посредством которого можно запустить, остановить или перезагрузить сервер, а также изменить имя файла и права доступа. Если вы щелкнете на пункте списка, соответствующего любому из уровней выполнения, будет выведено диалоговое содержащее вкладки Service и Entry (рис. 4.7). На вкладке Service представлено описание сервера, а на вкладке Entry находятся инструменты, позволяющие изменить имя ссылки, указывающей на сценарий запуска и номер, определяющий порядок запуска.
Рис. 4.7. После щелчка на имени службы ksysv отображает диалоговое окно, позволяющее редактировать сценарии запуска и ссылки SysV
Для того чтобы разрешить автоматический запуск сервера, надо перетащить мышью имя сервера из списка Stop, соответствующего определенному уровню выполнения, в список Start того же уровня. Чтобы запретить запуск сервера, надо выполнить обратное действие. Вы также можете перетащить имя сервера из списка Available Services в список, соответствующий уровню выполнения. В любом случае ksysv присвоит серверу последовательный номер, определяемый позицией, в которую вы перетащили соответствующий пункт списка. Например, если вы перетащили имя сервера и вставили его между пунктами списка с последовательными номерами 20 и 30, ksysv присвоит ему номер 25. Для того чтобы изменить этот номер, надо щелкнуть на имени сервера в списке, соответствующем уровню выполнения, и ввести новое значение в поле Sorting Number (см. рис. 4.7). Очевидно, что ksysv не имеет сведений о том, какой номер наиболее подходит для сервера в вашей системе, поэтому при настройке системы приходится уделять внимание выбору последовательных номеров. Используя ksysv, можно получить конфигурацию, при которой на каком-то из уровней имя сервера будет присутствовать как в списке Start, так и в списке Stop, поэтому необходимо следить за тем, чтобы подобная ситуация не возникала.
Утилиты ksysv и tksysv не обеспечивают той степени гибкости, которой позволяют добиться такие инструменты, как Linuxconf и YaST. Инструменты, предназначенные для управления сценариями SysV, в отличие от более универсальных средств, ориентированы на выполнение одной задачи. Несмотря на то что специализированные утилиты упрощают работу со сценариями SysV, использование их не освобождает вас от необходимости знать основные принципы работы системы. Вы должны представлять себе, что такое уровни выполнения, как определяется последовательность вызова сценариев, и другие особенности работы со средствами запуска SysV.
Выбор способа запуска сервера
Поскольку серверы, предназначенные для выполнения в системе, могут запускаться по-разному, возникает проблема выбора наиболее приемлемого метода запуска конкретного сервера. Большинство серверов, поставляемых в виде дистрибутивных пакетов, ориентированы на определенный метод запуска. Так, например, в состав дистрибутивного пакета может входить сценарий запуска SysV либо конфигурационный файл суперсервера, предназначенный для размещения в каталоге /etc/xinetd.d. В большинстве случаев изменять способ запуска, предусмотренный в дистрибутивном пакете, нет необходимости, но возможны ситуации, когда вам потребуется запустить сервер по-другому. В табл. 4.2 описаны преимущества и недостатки каждого из трех методов запуска сервера, рассмотренных в данной главе.
Таблица 4.2. Преимущества и недостатки различных методов запуска серверов
| Способ запуска | Преимущества | Недостатки |
|---|---|---|
| Сценарии запуска SysV | Сервер может запускаться на различных уровнях выполнения. Сервер обрабатывает запросы без задержки. Настройка осуществляется посредством переименования файлов. Сценарии предоставляют удобные средства для запуска и остановки серверов вручную | Серверы занимают большой объем оперативной памяти. Контроль доступа из-за пределов локальной сети затруднен |
| Суперсервер | За счет выгрузки редко используемых серверов экономится память. Администратор имеет возможность управлять доступом извне | Большое время отклика сервера. Некоторые серверы ненадежно работают в подобной среде. Для сохранения данных между последовательными запросами приходится принимать дополнительные меры |
| Локальные сценарии запуска | Быстрый отклик сервера. Если сценарии SysV для сервера отсутствуют, он может быть без труда запущен с помощью локальных сценариев | Плохая интеграция с инструментальными средствами настройки (chkconfig, ksysv и т.д.). Сценарии запуска различаются в разных версиях системы |
Как правило, большинство серверов в системе Linux (а также программ, реализующих службы, не связанные с взаимодействием по сети) запускаются посредством сценариев SysV. Обращения к некоторым серверам производятся настолько часто, что задержка, связанная с загрузкой сервера с помощью суперсервера, становится недопустимой. С точки зрения составителя дистрибутивного пакета сценарии SysV предпочтительнее локальных сценариев запуска, поскольку при использовании такого подхода можно легко добавлять новые или удалять существующие сценарии. Кроме того, считается, что некоторые серверы, например Samba, не обеспечивают достаточной надежности, будучи загруженными с помощью суперсервера. Иногда бывает необходимо, чтобы сервер сохранял информацию о запросе, например, nmbd должен запоминать имена и адреса компьютеров в сети. Такой сервер нельзя загружать посредством суперсервера, так как после удаления кода программы из памяти эта информация теряется.
Помимо сценариев SysV, суперсерверы также находят широкое применение. Во многих пакетах суперсерверы используются для запуска серверов, время загрузки которых невелико (например, серверов Telnet и FTP). В некоторых случаях такой подход можно использовать и для запуска серверов с большим объемом кода, например Apache, но загрузка Apache посредством суперсервера оправдана, только если обращение к этому серверу выполняется очень редко. Некоторые системы, например Debian, позволяют при установке сервера выбирать, должен ли он запускаться с помощью сценариев SysV или суперсервера. Если же возможность выбора отсутствует, вы можете по окончании инсталляции удалить сценарий SysV данного сервера и включить запись о нем в конфигурационный файл суперсервера.