TimVin

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

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

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

Debian/Ubuntu

Для  дистрибутивов Debian и Ubuntu управление автозагрузкой служб и доменов осуществляется с помощью утилиты update-rc.d с посредством демона init. Сама утилита работает с символическими ссылками связанных с init скриптами, которые управляют запуском/остановкой программ расположенных в каталоге /etc/init.d. Коротко пройдемся по основных командах:
  • вывод списка сервисов и их состояния
service --status-all
  • добавить сервис в автозагрузку (service — название самого сервиса).
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
Автозагрузка сервисов призвана немного облегчить рутинные задачи, с чем успешно справляется.
Рубрики: Linux