Я искал в интернете ответ и не нашел конкретного. Если я хочу изменить уровень выполнения, можно использовать просто init
или всегда вызывать его через telinit
.
Я читал, что telinit
фактически является символической ссылкой на init
. Если это правильно, могу ли я использовать их взаимозаменяемо?
Страница руководства telinit (8) отвечает на ваш вопрос: используйте telinit
.
telinit может использоваться для изменения уровня запуска системы.
BLOCKQUOTE>
Это должно быть хорошо, чтобы изменить уровень запуска с любым из них. Поскольку init
должен проверить, является ли это реальным процессом инициализации. Или просто telinit
, проверяя, равен ли он pid, а не по имени файла.
Так что да, вы должны использовать их взаимозаменяемо.
Тем не менее, я не могу гарантировать отсутствие несоответствующих систем, где это не сработает. Лучше всего проверить себя, правильно ли он работает в вашей установке.
init является первичным процессом, который является родителем ко всем другим процессам. Это запускается при начальной загрузке и проверяет Ваш/etc/inittab и набор других настроек. Это также имеет понятие runlevel и знает от Ваших/etc/init.d настроек, например, который обрабатывает для запущения/останавливания, когда Вы переключаетесь между runlevels.
telinit является инструментом меньшего размера, который сообщает init, когда он должен переключить runlevels. Таким образом, можно использовать "telinit", чтобы "сказать init", что он должен переключить runlevel.
А быстрый пример: когда Вы загрузитесь в графический режим (runlevel 5), init запустит и запустит все программы, связанные для runlevel 5 (самого являющийся родительским процессом всех они). Когда Вы затем попросите завершать работу машины, telinit сообщит - все еще работающий - init процесс, что это должно переключиться на runlevel 6 (для перезагрузки) или 0 (для системного останова).
См. "человека init" для получения дополнительной информации о runlevels.