Традиционно Linux использовал сценарии инициализации System V-стиля, в то время как новые системы инициализации в конечном итоге устарели традиционными уровнями исполнения, они еще не созданы. Например, система Upstart Ubuntu по-прежнему использует традиционные сценарии System V-style.
Что такое уровень запуска?
Когда система Linux загружается, она запускает в этом процессы. init отвечает за запуск других процессов в системе. Например, когда вы запускаете свой Linux-компьютер, ядро запускает init, а init запускает сценарии запуска для инициализации вашего оборудования, создания сети, запуска вашего графического рабочего стола.
Тем не менее, существует не только один набор сценариев запуска init. Существует несколько уровней запуска с их собственными сценариями запуска - например, один уровень запуска может создавать сети и запускать графический рабочий стол, тогда как другой уровень запуска может отключить работу сети и пропускать графический рабочий стол. Это означает, что вы можете отказаться от «графического режима рабочего стола» до «текстового консольного режима без сети» с помощью одной команды без ручного запуска и остановки различных служб.
Более конкретно, init запускает скрипты, расположенные в определенном каталоге, который соответствует уровню выполнения. Например, когда вы вводите уровень запуска 3 в Ubuntu, init запускает скрипты, расположенные в каталоге /etc/rc3.d.
Уровни выполнения
Некоторые уровни запуска являются стандартными для дистрибутивов Linux, а некоторые уровни выполнения варьируются от распределения к распределению.
Следующие уровни запуска являются стандартными:
- 0 – стой (Выключает систему.)
- 1 – Однопользовательский режим (Система загружается в режим суперпользователя без запуска демонов или сетей. Идеально подходит для загрузки в среду восстановления или диагностики).
- 6 – перезагружать
Уровни выполнения 2-5 различаются в зависимости от распределения. Например, на Ubuntu и Debian уровни запуска 2-5 одинаковы и обеспечивают полный многопользовательский режим с сетевым и графическим входом. В Fedora и Red Hat уровень запуска 2 обеспечивает многопользовательский режим без подключения к сети (только для входа в консоль), уровень запуска 3 обеспечивает многопользовательский режим с помощью сети (только для входа в консоль), уровень выполнения 4 не используется, а уровень запуска 5 обеспечивает многопользовательский режим с сетевой и графический вход в систему.
Переход на другой уровень выполнения
Чтобы переключиться на другой уровень запуска, когда система уже запущена, используйте следующую команду:
sudo telinit #
Замените # номером уровня запуска, на который вы хотите переключиться. Опустите sudo и запустите команду как root, если вы используете дистрибутив, который не использует sudo.
Загрузка непосредственно на определенный уровень выполнения
Вы можете выбрать уровень запуска для загрузки с загрузчика - например, Grub. В начале процесса загрузки нажмите клавишу для доступа к Grub, выберите свою загрузочную запись и нажмите e, чтобы отредактировать ее.
Можете добавить не замужем до конца линукс для входа в однопользовательский уровень выполнения (уровень запуска 1). (Нажмите Ctrl + x для загрузки после.) Это то же самое, что и опция режима восстановления в Grub.
Традиционно вы можете указать число в качестве параметра ядра, и вы загрузитесь на этот уровень выполнения - например, используя 3 вместо не замужем для загрузки на уровень запуска 3. Однако это не работает в последних версиях Ubuntu - Upstart, похоже, не позволяет этого. Аналогично, как вы измените уровень запуска по умолчанию, будет зависеть от вашего дистрибутива.
Хотя демон Upstart Ubuntu по-прежнему эмулирует систему инициализации SystemV, большая часть этой информации изменится в будущем. Например, Upstart основан на событиях - он может останавливаться и запускать службы при возникновении событий (например, служба может запускаться, когда аппаратное устройство подключается к системе и останавливается при удалении устройства.) Fedora также имеет свой собственный преемник для init, systemd.