Як додати сервіс в автозавантаження в 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, з чим успішно і справляється.