Знакомство с Linux: каталог /etc/init.d

Попробуйте наш инструмент устранения неполадок

Если вы используете Linux, вы, скорее всего, слышали о init.d каталог. Но что именно делает этот каталог? В конечном итоге он делает одно, но одно для всей вашей системы, поэтому init.d очень важно. init.d Каталог содержит ряд сценариев запуска / остановки для различных служб в вашей системе. Все от ACPID в x11-общий управляется из этого каталога. Конечно, не все так просто.

Если вы посмотрите на /и т.д каталог вы найдете каталоги, которые находятся в форме гс # .d (Где # - число, отражающее конкретный уровень инициализации - от 0 до 6). В каждом из этих каталогов есть несколько других сценариев, управляющих процессами. Эти сценарии будут начинаться с буквы «K» или «S». Все сценарии «K» выполняются перед сценариями «S». И в зависимости от того, где расположены скрипты, будет определяться момент их запуска. Между каталогами системные службы работают вместе, как хорошо отлаженная машина. Но бывают случаи, когда вам нужно запустить или остановить процесс чисто и без использования команд kill или killall. Вот где /etc/init.d каталог пригодится.

Теперь, если вы используете такой дистрибутив, как Fedora, вы можете найти этот каталог в /etc/rc.d/init.d , Независимо от местоположения, он служит той же цели.

Чтобы управлять любым из скриптов в init.d вручную у вас должен быть root (или sudo) доступ. Каждый сценарий будет запускаться как команда, и структура команды будет выглядеть так:

/etc/init.d/command ОПЦИЯ

куда команда это фактическая команда для запуска и ВАРИАНТ может быть одним из следующих:

  • Начало
  • стоп
  • перезарядка
  • начать сначала
  • форс-перезарядка

Чаще всего вы будете использовать либо старт, стоп, или начать сначала. Итак, если вы хотите остановить свою сеть, вы можете выполнить команду:

/etc/init.d/networking stop

Или, если вы вносите изменения в свою сеть и вам нужно ее перезапустить, вы можете сделать это с помощью следующей команды:

/etc/init.d/networking restart

Некоторые из наиболее распространенных сценариев инициализации в этом каталоге:

  • сетей
  • самба
  • apache2
  • даемон
  • SSHD
  • голубятня
  • MySQL

Конечно, в вашем каталоге могут быть более часто используемые сценарии - это зависит от того, что вы установили. Приведенный выше список был взят из установки Ubuntu Server 8.10, поэтому для стандартной настольной установки будет несколько меньше скриптов сетевого типа.

А как насчет /etc/rc.local

Есть третий вариант, который я использовал довольно часто. Этот вариант является /etc/rc.local скрипт. Этот файл запускается после того, как будут выполнены все остальные сценарии уровня инициализации, поэтому можно безопасно вводить различные команды, которые вы хотите запускать при запуске. Много раз я помещал в этот скрипт инструкции по установке для таких вещей, как nfs. Это также хорошее место для размещения сценариев «устранения неполадок». Например, однажды у меня была машина, на которой по какой-то причине самба не хотел запускаться. Даже после проверки, чтобы убедиться, что демон Samba настроен для инициализации при загрузке. Поэтому вместо того, чтобы тратить на это все свое время, я просто поместил строку:

/etc/init.d/samba start

в /etc/rc.local скрипт и Samba работали как шарм. В конце концов, я возвращался и решал эту проблему.

Последние мысли

Linux гибок. Linux настолько гибок, что почти неизбежно существует множество способов решить одну проблему. Одна из таких проблем - запуск системной службы. С помощью /etc/init.d система (а также /etc/rc.local ) вы можете быть уверены, что ваша служба запустится.