Прежде всего, вы должны различать две вещи: программу с именем init
и процесс init, который linux запускает после загрузки и выполняет базовый запуск - который также называется ядром init .
Первая - это программа, как и любая другая, задача которой - инициировать запуск системы, запуская различные другие программы и управляя их закрытием. Самая популярная программа, подобная этой, это sysvinit. Это самая популярная реализация "родителя всех процессов", встречающаяся в большинстве стандартных дистрибутивов Linux и обычно существующая как /sbin/init
.
Вторая - просто команда, которую ядро Linux знает и запускает автоматически при загрузке. Таким образом, вы можете указать ядру запустить любую другую программу вместо init. Например, популярный подход к восстановлению системы - указать linux запустить /bin/bash
или апплет /sbin/busybox
(см. Комментарии ниже). Это можно сделать, указав имя программы в качестве параметра загрузки (например, init=/bin/bash
).
Обратите внимание, что при выходе из процесса init система останавливается и становится практически непригодной для использования.
Помимо bash и busybox, есть несколько замен init, которые могут делать более или менее то, что делает init. Возможно, вы захотите взглянуть на minit, runit, cinit, jinit, upstart или initng. Но если вы стремитесь к абсолютно минимальному решению без параллелизма запуска или расширенных функций, busybox может быть лучшим выбором.