Когда использовать reboot (2) по сравнению с reboot (8)

[112573] Может быть, [113099]AuthLDAPInitialBindAsUser[113100] (Apache 2.3.6) может помочь:[12274]В сочетании с [113101]AuthLDAPInitialBindPattern[113102], что-то вроде этого может помочь (непроверено):[12275]
2
12.05.2015, 00:23
3 ответа

Перезагрузка (2) - это API, вы используете его, если вы Реализация перезагрузка (8) или система init.

Узнать больше, чтение страница человека .

-1
27.01.2020, 22:21

Если вы хотите перезагрузить систему сейчас, ничего больше не делайте, не обращайте внимания на другие запущенные процессы, не обращайте внимания на открытые файлы, затем вызовите системный вызов reboot (то есть reboot (2) ). Редко даже заранее не вызвать sync .

Если вы хотите перезапустить систему в обычном режиме, оставив процессам некоторое время для полного завершения, размонтирования файловых систем и т. Д., То вызовите утилиту reboot (то есть reboot (8) ).

Если вам нужно спросить, перезагрузка (8) является правильной. Системный вызов reboot в значительной степени присутствует только потому, что утилита reboot должна каким-то образом сказать: «Да, я закончил, система почти остановлена, теперь сбросьте процессор ».

2
27.01.2020, 22:21

Вы должны знать, что перезагрузка(8) может быть сделана для немедленной перезагрузки (пропустив все взаимодействие с init), запустив его как перезагрузка -f. Таким образом init фактически уничтожает систему после того, как он был помещен в runlevel 6. Вызов reboot(2) - это как раз то, как reboot(8) взаимодействует с ядром, чтобы сказать ему физически перезагрузить (или выключить) систему. Он также делает и другие вещи, такие как постановка init-процесса под контроль реакции на нажатие клавиши ctrl-alt-delete.

В общем, единственная причина, по которой вы хотите сделать перезагрузку/остановку/выключение питания -f как пользователь - это если init-система сломана, например, если вы делаете восстановление системы вручную в однопользовательском режиме (например, загрузившись из командной строки ядра emergency или init=/bin/sh). И, конечно же, перед этим нужно запустить синхронизацию(8).

Многие init'ы действительно обеспечивают аварийный режим или спасательный режим , который не требует этого, вместо этого вы можете просто использовать обычные инструменты выключения/перезагрузки, или выйти из оболочки. Режимы -f, как правило, используются обычными пользователями только в крайнем случае. Хотя, конечно, если вы полностью обошли init с помощью init=/bin/sh, обычная система выключения вряд ли сделает что-нибудь полезное. И если вы выйдете из оболочки командной строки в этом случае, это вызовет панику в ядре.

0
27.01.2020, 22:21

Теги

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