При работе с уровнями выполнения в Linux есть несколько важных нюансов, которые должен учитывать DevOps-инженер. Эти примечания помогут избежать распространённых ошибок и глубже понять работу системы.
Уровни выполнения могут иметь разное назначение в различных дистрибутивах:
# В RedHat/CentOS:
2 - Многопользовательский без NFS
# В Debian/Ubuntu:
2-5 - Обычно идентичны (многопользовательский с сетью)
Всегда проверяйте документацию конкретного дистрибутива.
Современные системы используют systemd, где:
# Вместо:
init 3
# Используйте:
systemctl isolate multi-user.target
Но традиционные команды (init
, telinit
) остаются для совместимости.
init 0
- Немедленное выключение (аналог poweroff
)init 6
- Немедленная перезагрузка (аналог reboot
)Важно: Эти команды не спрашивают подтверждения!
Могут быть настроены, но:
/etc/rc.d/rcX.d/
Для понимания что включается в конкретном target:
systemctl list-dependencies multi-user.target
В SysVinit:
# Редактировать /etc/inittab:
id:5:initdefault:
В systemd:
systemctl set-default graphical.target
Для серверов обычно используют уровень 3 (или multi-user.target
)
Для рабочих станций - уровень 5 (graphical.target
)
При проблемах - уровень 1 (rescue.target
)
Всегда проверяйте текущий уровень перед изменением:
who -r # или systemctl get-default
В скриптах предпочтительнее использовать:
systemctl reboot # вместо init 6
systemctl poweroff # вместо init 0