Хм. Это не должно быть сложным для достижения, но это также очень сложно :)
Вы можете просто сделать то, что предложил Александр ( init = / bin / bash
), и все будет в порядке.
Процесс инициализации - это то, что вызывает ядро, и он запускает все вашего пользовательского пространства. Терминал входа в систему включен. Если ваш init просто порождает этот терминал bash, все в порядке. Но если этот терминал выйдет из строя или завершится, init должен очиститься. Если некоторые процессы, которые вы запускаете с терминала, умирают, вам необходимо очистить их. Если они умрут, то их детям потребуется новый родительский процесс, это будет ваш init.
Я настоятельно рекомендую выделить 10 минут, чтобы прочитать это, это очень удобный обзор того, что делает init
:
http://tilde.town/~elly/userland.txt
Тогда вы подойду ближе, чтобы понять, что влечет за собой запуск вашего собственного init.
В соответствующей части этой ссылки говорится:
Нам нужно сделать только одно: предоставить исходный двоичный файл для запуска по любому из этих путей: / sbin / init, / etc / init , / bin / init или / bin / sh. Этот процесс (init) запускается как pid 1.
Процесс init должен делать две вещи:
Никогда не завершать работу (если init завершается, ядро паникует)
Получать зомби-процессы
Остальные процессы text затем реализует простой init.
Вы можете использовать следующие
trust-anchor=.,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
Значения взяты из IANA https://data.iana.org/root-anchors/root-anchors.xml