Изменение уровня выполнения: init или telinit?
Я искал в интернете ответ и не нашел конкретного. Если я хочу изменить уровень запуска, можно использовать только init или я всегда должен звонить через telinit,
Я прочитал это telinit на самом деле символическая ссылка на init, Если это правильно, могу ли я использовать их взаимозаменяемо?
2 ответа
Страница руководства telinit(8) отвечает на ваш вопрос: используйте telinit,
Telinit может использоваться для изменения уровня запуска системы.
Init - это основной процесс, который является родительским для всех других процессов. Он запускается при загрузке и проверяет ваш /etc/inittab и кучу других настроек. Он также имеет понятие уровня запуска и знает, например, из ваших настроек /etc/init.d, какие процессы запускаются / останавливаются при переключении между уровнями выполнения.
telinit - это небольшой инструмент, который сообщает init, когда ему нужно переключить уровни выполнения. Таким образом, вы можете использовать "telinit", чтобы "сообщить init", что он должен переключать уровень выполнения.
Быстрый пример: при загрузке в графическом режиме (уровень запуска 5) init запустит и запустит все программы, связанные с уровнем запуска 5 (сам по себе являющийся родительским процессом для всех). Когда вы попросите выключить компьютер, telinit сообщит процессу -still running- init, что ему нужно переключиться на уровень выполнения 6 (для перезагрузки) или 0 (для остановки системы).
Смотрите "man init" для подробностей об уровнях запуска.
Это должно быть хорошо, чтобы изменить уровень запуска с любым из них. Как init должен проверить, является ли это реальным процессом инициализации. Или просто telinit, проверяя, равен ли он pid, а не по имени файла.
Так что да, вы должны иметь возможность использовать их взаимозаменяемо.
Однако я не могу гарантировать, что не существует несоответствующих систем, где это не сработает. Лучше всего проверить себя, работает ли он так, как задумано в вашей установке.