В даний час є три основні системи init, які використовує Linux. Кілька років тому був лише один, SysVinit. Але SysVinit серйозно бракував таких можливостей, як графік залежності від сервісу, тому до цих пір він застарілий у більшості дистрибутивів. В даний час більшість дистрибутивів переходять на systemd . Хоча є і вискочка .
Але ось відповідь на ваше запитання щодо кожної з 3-х систем init:
SysVinit
Зараз SysVinit використовуються Debian та RedHat. Хоча наступна версія RedHat (7) буде використовувати systemd.
Універсальний спосіб включення служб SysVinit під час завантаження полягає в тому, щоб символізувати їх у /etc/rc3.d
(або /etc/rc2.d
). Усі послуги можна знайти в /etc/init.d
. Однак зауважте, що дистрибутивні програми часто мають власний інструмент для управління цими файлами, і цей інструмент слід використовувати замість цього. (Fedora / RedHat має service
і chkconfig
, ubuntu має update-rc.d
)
Список послуг:
ls /etc/init.d/
Початок обслуговування:
/etc/init.d/{SERVICENAME} start
або
service {SERVICENAME} start
Стоп-сервіс:
/etc/init.d/{SERVICENAME} stop
або
service {SERVICENAME} stop
Увімкнути послугу:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
( S95
використовується для вказівки замовлення. S01 почнеться перед S02 тощо)
Відключити послугу:
rm /etc/rc3.d/*{SERVICENAME}
Системний
Найпомітніший дистрибутив із використанням systemd - це Fedora. Хоча його використовують і багато інших. Крім того, коли Debian вирішив перейти з systemd через upstart, він стане системою defacto upstart для більшості дистрибутивів (ubuntu вже оголосив, що відкине старт для systemd).
Список послуг:
systemctl list-unit-files
Початок обслуговування:
systemctl start {SERVICENAME}
Стоп-сервіс:
systemctl stop {SERVICENAME}
Увімкнути послугу:
systemctl enable {SERVICENAME}
Відключити послугу:
systemctl disable {SERVICENAME}
На початку
Upstart був розроблений людьми Ubuntu. Але після того, як debian вирішив перейти з systemd , Ubuntu оголосив, що відкинеться .
Upstart також коротко використовувався RedHat, оскільки він присутній у RHEL-6, але він не використовується зазвичай.
Список послуг:
initctl list
Початок обслуговування:
initctl start {SERVICENAME}
Стоп-сервіс:
initctl stop {SERVICENAME}
Увімкнути послугу:
На жаль, 2 способи:
Буде файл, /etc/default/{SERVICENAME}
який містить рядок ENABLED=...
. Змініть цей рядок на ENABLED=1
.
Буде файл /etc/init/{SERVICENAME}.override
. Переконайтесь, що він містить start
(або повністю відсутній), ні manual
.
Відключити послугу:
echo manual > /etc/init/{SERVICENAME}.override
Примітка: Існує також система "OpenRC" init, яку використовує Gentoo. В даний час Gentoo є єдиним дистрибутивом, який використовує його, і він не розглядається для використання, а також не підтримується будь-яким іншим дистрибутивом. Тому я не висвітлюю його використання (хоча якщо думка така, що я роблю, я можу додати її).