Почему инициализация процесса первого уровня помещается в / sbin?
Стандарт иерархии файловой системы (FHS) и fhs-3.0 говорит, что:
Утилиты, используемые для системного администрирования (и другие root -только команды), хранятся в / sbin, / usr / sbin и / usr / local / sbin. / sbin содержит двоичные файлы, необходимые для загрузки, восстановления, восстановления и / или восстановления системы в дополнение к двоичным файлам в / bin.
Поскольку процесс init является двоичным файлом, необходимым для загрузки системы, естественно поместить его в каталог /sbin
(если следовать стандарту).
В Linux необходимые исполняемые файлы, которые должны быть доступны в однопользовательском режиме, должны быть помещены в /bin.
Да, стандарт говорит об этом. Тем не менее, нет необходимости, нет принуждения. Да, большинство дистрибутивов помещают необходимые исполняемые файлы в каталог /bin
, так как это то, что стандарт говорит, что они должны быть там размещены, поэтому естественно размещать их там. Вы можете делать с вашей системой все, что хотите, и иметь собственную структуру каталогов, которую вы желаете.
Однако 'init' помещается в / sbin. Это правильно?
Как правило, как соглашение, да. Тем не менее, вы можете передать init=
параметр командной строки ядра и в основном init=/place/your/init/binary/anywhere/you/want
. Первое место, которое ядро ищет для процесса запуска, - /sbin/init
.
И да, /sbin
имеет двоичные файлы, необходимые для загрузки системы, необязательно для администрирование системы, когда файловая система не смонтирована.
Может ли init (systemd) не работать в однопользовательском режиме?
Вкл. система без systemd никогда не работает.