Что изменится, если я использую команду "telinit 6" вместо команды "reboot" для перезагрузки компьютера? [duplicate]

Вы можете заменить свое правило на:

$(PACKAGES):
    stow --no-fold $@
1
30.03.2018, 22:57
2 ответа

В ОС на основе init/sbin/telinitсвязан с /sbin/init, а в ОС на основе systemedон связан с /sbin/systemed. Так,это способ связи с initили systemedили аналогичным программным обеспечением.

Результат telinit 6и rebootодин и тот же, но они реализуют разные мысли.

Цитата изhttp://www.tutorialspoint.com/unix_commands/init.htm

A runlevel is a software configuration of the system which allows only a selected group of processes to exist.

Таким образом, изменение runlevelне эквивалентно rebootingили power off.

В initна основе ОС runlevelпостоянно упоминается /etc/inittab. При запуске система initчитает файл, чтобы решить, какие группы процессов следует запустить. Уровень запуска 6 говорит, что не запускайте никаких процессов и перезагружайтесь.

Изменение в /etc/inittabнеобратимо. Если файл изменен, initизменяет уровень запуска -при перезагрузке и остается на нем до дальнейшего изменения файла.

Эффект telinitоднократный и без перезагрузки. После перезагрузки initснова считывается с /etc/inittabи соответственно запускается уровень -.

Теперь запустите -уровень 6 говорит init, чтобы убить все дочерние процессы и перезагрузиться. Сtelinit 6initубить все дочерние процессы и перезагрузиться. Включив команду reboot, init проделайте то же самое. Но это не означает, что изменение уровня запуска -эквивалентно перезагрузке. Потому что, если вы навсегда измените уровень запуска -вашей системы на 6, используя /etc/inittab, она будет продолжать перезагружаться.

Если вы используете telinit 6для перезагрузки системы, а не команду reboot, это не будет иметь никакого значения.

1
27.01.2020, 23:32

В Linux существует система инициализации под названием SysVinit, которая создана по образцу системы инициализации UNIX System V. Некоторые версии Linux на самом деле все еще используют эту систему, поддерживают с ней совместимость, например SysVcompat от Systemd, или заменили ее частично (без sysvcompat, но все еще используют скрипты sysv, такие как Debian ), или заменили все вместе, например, «чистый» Системные системы.

Именно SysV реализует концепцию уровней выполнения. Скрипты помещаются в /etc/rc{runlevel}.d/, где runlevel — это уровень запуска. SysV также определяет упорядоченное поведение уровней выполнения по умолчанию, включая то, к какому из них следует перейти по умолчанию. Каждый сценарий на каждом уровне выполнения запускается со своими функциями запуска или завершения работы в зависимости от того, повышается этот уровень выполнения или понижается. Таким образом, в системе sysvinit да, когда вы загружаете ее первый запуск /sbin/init, и эта программа впоследствии запускает функции запуска каждого скрипта на каждом уровне выполнения. Я также должен отметить, что у вас может быть установлено больше сценариев, чем указано в /etc/rc *, и именно так вы включаете и отключаете сценарии и, следовательно, службы, которыми они управляют.

Системы, не использующие sysv, вообще не должны этого делать, как systemd. Проще говоря, systemd имеет модули, которые определяют свои зависимости, такие как другие службы, точки монтирования, таймеры или цели, такие как «network.target». Вместо того, чтобы вдаваться в подробности о systemd, я просто скажу, что systemd поддерживает полную совместимость со сценариями sysv, но не обязательно с его уровнями выполнения. Кроме того, init может запускаться первым, или systemd может запускаться, а затем запускать все сценарии sysv. Или ваш дистрибутив мог бы заменить все ваши сценарии sysv модулями systemd. В большинстве дистрибутивов будут установлены сценарии совместимости, чтобы такие вещи, как rebootили telinit, работали через systemd.

1
27.01.2020, 23:32

Теги

Похожие вопросы