Каким образом можно запустить openrc init с id 1, а затем выполнить ваш собственный скрипт при создании вашего мини дистрибутива операционной системы? Кроме того, существуют ли легковесные альтернативы openrc, не превосходящие по размеру 100 МБ, которые можно рассмотреть для этой цели?
1. Простые системы инициализации: - SysVinit: классическая система инициализации на базе скриптов в Unix-подобных системах. - BSD init: система инициализации, используемая в операционных системах семейства BSD. - OpenRC: современная система инициализации, используемая в Gentoo Linux, Alpine Linux и других дистрибутивах. - Runit: легковесная система инициализации, разработанная для гарантирования стабильной работы системы. 2. Для установки OpenRC init с id 1 и запуска собственного скрипта при создании мини дистрибутива, необходимо выполнить следующие шаги: - Установить пакет OpenRC на вашей системе. - Создать необходимые скрипты инициализации в каталоге /etc/init.d/. - Настроить файл /etc/rc.conf для запуска вашего скрипта при старте системы. - Установить OpenRC как init систему по умолчанию в файле /etc/inittab. 3. Существуют легковесные альтернативы OpenRC, например: - Runit: легковесная система инициализации, занимающая меньше места и обладающая простым и эффективным способом управления службами. - s6-init: еще одна легковесная система инициализации, представляющая собой набор утилит для запуска и управления службами. Эти альтернативы могут быть рассмотрены для создания мини дистрибутива операционной системы, который требует минимальных ресурсов и обеспечивает стабильную работу системы.
Вам нужно либо запускать getty или аналог в качестве сервиса openrc, либо в вашем init-скрипте запускать openrc-демон последним, с помощью exec
exec [-cl] [-a name] [command [arguments]] If command is specified, it replaces the shell. No new process is created. The arguments become the arguments to command. If the -l option is supplied, the shell places a dash at the beginning of the zeroth argument passed to command. This is what login(1) does. The -c option causes command to be executed with an empty environment. If -a is supplied, the shell passes name as the zeroth argument to the executed command. If command cannot be executed for some reason, a non- interactive shell exits, unless the execfail shell option is enabled. In that case, it returns failure. An interactive shell returns failure if the file cannot be executed. If command is not specified, any redirections take effect in the current shell, and the return status is 0. If there is a redirection error, the return status is 1.