Автозапуск демонов в Linux Ubuntu

Итак, в этой статье поговорим об авто запуске демонов в операционной системе Linux Ubuntu. Случается такое, что необходимо подкорректировать автозапуск некоторых демонов в системе и создаётся резонный вопрос «как это сделать».

Статью я условно разделил на 2 части. В первой я расскажу как всё сделать быстро, а во второй мы разберём всё подробно.

Так вот, всё достаточно просто. Пойдём по пути меньшего сопротивления и познакомимся с такой замечательной утилитой как  rcconf. В базовой комплектации ОС её нет, поэтому установим её:

sudo apt-get install rcconf

или так:

sudo apt-get install dialog rcconf

Выдержка из мануала говорит нам следующее:

rcconf - Debian Runlevel configuration tool

т.е. при переводе на русский как то так:

rcconf - Debian уровень запуска конфигурационный инструмент

В общем при помощи этой программы можно легко управлять запуском программ демонов в вашей системе. После запуска запускаем её:

sudo rcconf

и отключаем/включаем всё, что нам надо при запуске системы. Отмечаем звездочками нужные демоны, с ненужных их снимаем и перезагружаемся. Программа имеет простой и понятный консольный интерфейс, поэтому там разобраться не трудно.

Так же ниже для полноты даю информацию по ключам запуска rcconf.

  • —expert включает в список важные системные демоны
  • —now останавливает или запускает демоны сразу же по закрытии rcconf
  • —dialog | —whiptail | —notermcheck выбор внешнего вида
  • —verbose — выводит дополнительную информацию
  • —config *config_file* — позволяет использовать файл настроек(Сгенерировать его можно c помощью —list)
  • —list — выводит все демоны и их статусы

Как видите всё просто. Программа просто великолепная.

Подробнее о запуске программ/демонов в Linux

Вообще в Linux так же как и в Microsoft Windows много способов автоматического запуска программ.

Если подробнее, то существуют несколько способов сделать автозапуск программ/демонов в Linux:

  • записать вызов программы/скрипта запуска в /etc/rc.local в фоновом режиме (&) (в разных дистрибутивах может лежать в разных местах, например, /etc/rc.d/rc.local) с перенаправленными потоками ввода/вывода в /dev/null. Например, «/home/user/my_prog 1 > /dev/null 2 > /dev/null &». Также, дополнительно, можно воспользоваться командой nohup;
  • внести вызов в /etc/inittab, согласно правилам его оформления. В отличие от первого способа тут можно указать уровень запуска для программы;
  • написать скрипт, позволяющий запускать/останавливать/перезапускать программу как демона, а также получать информацию о её состоянии. Именно этот способ чаще всего и используется и является как бы стандартом качества программы, об этом и поговорим.

Так вот, в каталоге /etc/init.d содержатся, так называемые, запускные скрипты всех демонов, а также два файла (skeleton и README) для желающих написать себе свой запускной скрипт, сейчас же это выходит за рамки этой статьи. Важно различать директории /etc/init.d и /etc/init т.к. это далеко не одной и тоже, это неспроста. В первой лежат именно запускные скрипты, а во второй инициализационные скрипты. В общем в этих папках вы найдёте файлы автоматического запуска многих программ/демонов. Можно вообще просто удалить/переименовать или изменить содержимое конкретного файла нужной программы, что бы поменять тип её запуска или вообще отменить его.

После создания в нужной папке такого скрипта его необходимо прописать в автозагрузке. Для этого используется утилита update-rc.d, хотя в разных дистрибутивах и версиях могут быть другие варианты. К примеру в Debian 6 stable и выше вместо неё используется программа insserv, но речь сейчас о update-rc.d. Вот описание из её мануала:

update-rc.d - install and remove System-V style init script links

что в переводе:

update-rc.d - установка и удаление ссылок скриптов инициализации в стиле System-V

Т.е. эта программа устанавливает и удаляет те самые скрипты. Значит для управления нужным скриптом инициализации/запуска используется следующий синтаксис:

update-rc.d <имя_скрипта> defaults
(или insserv <имя_скрипта> для debian 6 stable и выше)
Удалить из автозагрузки можно так:
update-rc.d -f <имя_скрипта> remove
(или insserv -r <имя_скрипта> для debian 6 stable и выше)

Т.е. теперь, когда мы знаем как всё это устроено, мы можем управлять автозагрузкой загрузочных/инициализационных скриптов. Как правило файлы этих скриптов называются так же как и программа/демон для которой они были написаны, во всяком случае это правило хорошего тона. Значит находим в директориях /etc/init.d или /etc/init необходимый файл и удаляем/добавляем его при помощи программы update-rc.d с синтаксисом описанным выше.

Вообще, как я же говорил, это далеко не единственный способ запуска программы/демона, но об этом как-нибудь патом.

На этом пожалуй всё, благодарю за внимание.

Поделиться!
Tags: , ,

49.69MB | MySQL:52 | 0,271sec