Ответ
В истории Ubuntu использовалось несколько систем инициализации, но современные версии стандартизированы.
Эволюция в Ubuntu:
- SysVinit: Использовался в самых ранних версиях. Управление через скрипты в
/etc/init.d/. - Upstart: Был стандартом в Ubuntu с версии 6.10 (Edgy Eft) до 14.10 (Utopic Unicorn). Использовал событийную модель (конфиги в
/etc/init/). - systemd: Стал системой по умолчанию, начиная с Ubuntu 15.04 (Vivid Vervet), и остается ею во всех актуальных LTS-релизах (16.04, 18.04, 20.04, 22.04).
Текущее состояние: Современный Ubuntu (актуальные LTS-версии) использует systemd. Это стандарт для управления службами, их зависимостями, журналами и системными состояниями.
Практические команды для systemd в Ubuntu:
# Проверка, что systemd является init-процессом (PID 1)
systemctl --version
# или
readlink /proc/1/exe
# Базовое управление службой Nginx
sudo systemctl start nginx # Запустить
sudo systemctl stop nginx # Остановить
sudo systemctl enable nginx # Включить автозагрузку
sudo systemctl status nginx # Показать статус
# Просмотр журналов службы
sudo journalctl -u nginx -f # Следить за логами в реальном времени
Ключевое преимущество systemd для DevOps: Единообразие. Один набор команд (systemctl, journalctl) работает одинаково на Ubuntu, CentOS, RHEL, Fedora и других современных дистрибутивах, что упрощает написание кросс-платформенных скриптов и документации.