Вот, ковыряясь с возможностями Apache [1], решил осветить тему утилиты управления Apachectl. Сразу отметим, что утилита Apachectl может работать в двух режимах. В любом из режимов Apachectl возвращает значение 0 в случае успешного выполнения сценария, и значение больше ноля, в случае ошибки.
В первом режиме Apachectl выступает как интерфейс для получения HTTPD-команд. Просмотреть доступные команды можно с помощью ключа -h, либо же выполнив команду Apachectl без аргументов:
# apachectl -h Usage: /usr/local/sbin/httpd [-D name] [-d directory] [-f file] |
Для примера, воспользуемся двумя самыми простыми коммандами:
# apachectl -v Server version: Apache/2.2.17 (FreeBSD) Server built: Dec 18 2010 20:45:37 # apachectl -t Syntax OK |
Первая команда - узнали версию програмного обеспечения web-сервера. Вторая - проверили конфигурационный файл на наличие ошибок.
Советую поэкспериментировать с остальными ключами.
Во втором режиме Apachectl работает как сценарий инициализации, позволяя запустить, остановить и перезапустить web-сервер. Доступные ключи:
- start - запуск демона Apache HTTPD. Выдает ошибку, если он уже запущен. Аналог apachectl -k start.
- stop - останов демона Apache HTTPD. Аналог apachectl -k stop.
- restart - перезапуск демона Apache HTTPD. Если демон не запущен, он запускается. Эта команда автоматически проверяет файлы конфигурации (запуск Apachectl с ключем configtest) перед началом перезапуска, чтобы убедиться, что демон не будет остановлен вследствии ошибки конфигурации. Аналог apachectl -k restart.
- fullstatus - отображает полный рапорт о состоянии с помощью модуля mod_status [2]. Необходимо, чтобы mod_status был включен в конфигурации демона Apache. Также необходима поддержка текстового браузера (например lynx). URL-адрес используется для отчета о статусе и может задаваться переменной STATUSURL.
- status - отображение базового отчета о статусе демона Apache. Похоже на fullstatus, только список запросов на данный момент не отображается.
- graceful - "мягкий" перезапуск демона Apache HTTPD. Если демон не запущен, он запускается. Отличие от restart в том, что уже открытые соединения не разрываются. Побочным эффектом является то, что старые файлы журналов не будут немедленно закрыты. Эта команда автоматически проверяет файлы конфигурации (запуск Apachectl с ключем configtest) перед началом перезапуска, чтобы убедиться, что демон не будет остановлен вследствии ошибки конфигурации. Аналог apachectl -k graceful.
- configtest - проверка синтаксиса файла конфигурации. Анализирует файлы конфигурации и в случае положительной проверки, выводит "Syntax OK". Если же в файле конфигурации присутствует ошибка, то будет выведена подробная информация о ошибке.