Как добавить сервис в автозагрузку в Linux?

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

В этой статье рассмотрим процесс добавления сервисов в автозагрузку для самых популярных дистрибутивов Linux: CentOS, Debian и Ubuntu.

Debian/Ubuntu

Для  дистрибутивов Debian и Ubuntu управление автозагрузкой служб и доменов осуществляется с помощью утилиты update-rc.d с посредством демона init. Сама утилита работает с символическими ссылками связанных с init скриптами, которые управляют запуском/остановкой программ расположенных в каталоге /etc/init.d.

Коротко пройдемся по основных командах:

service --status-all

update-rc.d services defaults

update-rc.d -f service remove

Опция -f отвечает за удаление символических ссылок.

CentOS 6

Здесь за автозагрузку демонов/программ/служб отвечает содержимое каталога /etc/rc.local. Управление этими процессами идет через команду  chkconfig, которая кроме стандартных функций добавления/удаления служб с автозагрузки имеет уровни выполнения команды (уровни запуска). Уровни запуска - режимы работы операционной системы, каждый с каких несет в себе установленное направление функционала и ограничений. Всего уровней существует семь, которые нумеруются от 0 до 6. 

0 уровень - прекращение работы системы.

1 уровень - однопользовательский режим, доступен только пользователю root.

2 уровень - многопользовательский режим, возможно работа с нескольких терминалов, вход уже  как обычные пользователи.

3 уровень - также многопользовательский режим, настройка сетевых служб.

4 уровень - не используется.

5 уровень - включение графической подсистемы X11, для возможности использования графического интерфейса вместо командной строки.

6 уровень - перезагрузка системы.

chkconfig --list

chkconfig --list service

Здесь после использования команды на экране в консоли возле номеров уровней будут идти индикаторы on -включен, off - выключен, что определяет на каких уровнях работает или нет указанный сервис.

chkconfig service on

chkconfig service off

chkconfig --level 015 httpd on

Где после --level указываются номера уровней (слитно) на которых будет доступен сервис.

Для версий Debian 8, Ubuntu 15.04, CentOS 7  и выше

В более новых версиях CentOS, Debian и Ubuntu в качестве демона автозагрузки сервисов применяется systemd. Systemd для этого использует unit-файлы из каталога /etc/systemd/system. Systemd является очень универсальным и многофункциональным менеджером систем Linux, и позволяет распределять запуск служб в процессе загрузки ОС (включать и отключать их), тем самым максимально контролировать сам запуск. Systemd идет в связке с командой systemctl через которую идет управление автозагрузкой сервисов в системе.

systemctl list-unit-files --type=service

systemctl status service

systemctl enable service

systemctl disable service

systemctl is-enabled service

Автозагрузка сервисов призвана немного облегчить рутинные задачи, с чем успешно справляется.

Купить VPS с Linux