Как добавить сервис в автозагрузку в 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
Автозагрузка сервисов призвана немного облегчить рутинные задачи, с чем успешно справляется.