Английская версия этой статьи взята из: http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
1. О /etc/init.d Если вы когда-либо пользовались системой Linux, то слышали о каталоге init.d. Для чего именно нужен этот каталог? В конечном итоге это делает только одну задачу, но это не тривиальная вещь, это делается для всей системы, поэтому это очень важно. Каталог init.d содержит множество скриптов запуска и остановки для различных сервисов системы. Он управляет всем — от acpid до x11-common. Конечно, init.d далеко не так просто. (Примечание переводчика: ACPID — это новый стандарт управления питанием для операционных систем Linux; X11 также называют системой X Window (X11 или X) — это оконная система с растровым отображением. Это стандартный набор инструментов и протокол для построения графических пользовательских интерфейсов на Unix и Unix-подобных операционных системах, а также на OpenVMS, и может использоваться практически во всех современных операционных системах. Если посмотреть на каталог /etc, можно найти множество каталогов в виде rc#.d (где # обозначает заданный уровень инициализации, диапазон — 0~6). В этих каталогах существует множество скриптов, контролирующих процесс. Эти сценарии начинаются либо на «K», либо на «S». Скрипты, начинающиеся на K, запускаются раньше скриптов, начинающихся на S. Место размещения этих скриптов определяет, когда они начнут работать. Между этими каталогами системные сервисы работают вместе, как здоровая машина. Однако иногда хочется начать или уничтожить процесс чисто, не используя команды «убить» или «убить все». Вот тут и пригодится /etc/init.d! Если вы используете систему Fedora, вы можете найти такую директорию: /etc/rc.d/init.d. На самом деле, он делает одно и то же, куда бы вы ни поставили init.d. Чтобы использовать скрипты в каталоге init.d, нужны права root или sudo. Каждый скрипт будет выполняться как команда, структурированная примерно следующим образом: Опция /etc/init.d/command comand — это фактическая команда, которая выполняется, и опции могут быть следующими: Старт Стоп перезарядка Перезапуск Перезарядка силой В большинстве случаев вы используете опции старт, стоп, перезапуск. Например, если вы хотите отключить сеть, вы можете использовать такую команду:
/etc/init.d/networking stop Другой пример — вы меняете настройки сети и должны перезапустить сеть. Вы можете использовать такие команды: /etc/init.d/networking restart Часто используемые скрипты инициализации в каталоге init.d следующие:
Сеть контактов самба Apache2 ftpd СШХД голубятня mysql Конечно, у вас могут быть и другие, более часто используемые скрипты, в зависимости от установленной операционной системы Linux. 2. О /etc/rc.local rc.local — это тоже скрипт, которым я часто пользуюсь. Скрипт запускается после запуска скрипта на уровне системной инициализации, поэтому безопасно добавить нужный скрипт уже после загрузки системы. Распространённый случай — добавить скрипт крепления/монтажа NFS. Также можно добавить скрипт-команды для отладки внутри. Например, я сталкивался с ситуацией, когда сервис самбы всегда не работает корректно, и проверка показывает, что самба должна была запускаться и выполняться во время запуска системы, то есть конфигурация демона самбы гарантирует, что эта функция выполняется правильно. В таком случае я обычно не трачу много времени на поиск причин, мне просто нужно добавить эту строку в скрипт /etc/rc.local: /etc/init.d/samba начало Таким образом, проблема исключения SAMBA была успешно решена.
3. Краткое содержание Linux гибкий. Благодаря своей гибкости мы всегда можем найти множество различных способов решения одной и той же задачи. Пример запуска системного сервиса — хороший пример. С скриптом в каталоге /etc/init.d и мощным инструментом /etc/rc.local вы можете быть уверены, что ваш сервис будет работать без проблем.
|