Як додати сервіс в автозавантаження в 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

 

Автозавантаження сервісів призначене полегшувати рутинні завдання при роботі з ОС Linux, з чим успішно і справляється.