Я просто хочу знать разницу между
rebootinit 6shutdown -r now
и какой самый безопасный и лучший?
Я просто хочу знать разницу между
reboot init 6shutdown -r nowи какой самый безопасный и лучший?
Ответы:
В них нет разницы. Внутренне они делают то же самое:
rebootиспользует shutdownкоманду (с ключом -r). Команда shutdown, используемая для уничтожения всех запущенных процессов, размонтирования всех файловых систем и, наконец, говорит ядру выдать команду ACPI power. Источник можно найти здесь . В старых дистрибутивах команда reboot вынуждала процессы выходить, выдавая SIGKILLсигнал (все еще найденный в источниках, может вызываться с -fпараметром), в самых последних дистрибутивах по умолчанию используется более изящный и дружественный к инициализации init 1 -> shutdown -r. Это гарантирует, что демоны очищаются перед выключением.
init 6говорит initпроцессу отключить все порожденные процессы / демоны, как записано в файлах инициализации (в обратном порядке, в котором они были запущены) и, наконец, вызвать shutdown -r nowкоманду для перезагрузки компьютера
Сегодня нет особой разницы, поскольку обе команды выполняют одно и то же, и они уважают сценарии инициализации, используемые для запуска служб / демонов, вызывая для них сценарии завершения работы. За исключением случаев, reboot -f -r nowуказанных ниже
Существует небольшое объяснение того, почему reboot -fэто небезопасно:
-f, --force
Принудительная немедленная остановка, отключение питания, перезагрузка. Не связывайтесь с системой инициализации.
Редактировать:
Забыл упомянуть, что в будущих дистрибутивах RHEL вы должны использовать новую systemctlкоманду для запуска poweroff / reboot. Как указано на страницах man rebootи shutdownони являются «устаревшей командой, доступной только для совместимости». и systemctlметод будет единственным безопасным.
init 1 -> shutdown -r?
Отключение предпочтительнее, потому что оно позволяет вам указать причину радикальных действий - то, что вы всегда должны делать. Сообщение будет записано в журнал (ы) для потомков. Например:
shutdown -r now 'Kernel upgrade requires reboot'
Вы также можете выполнить запланированную перезагрузку, указав что-то отличное от nowвремени перезагрузки:
shutdown -r 22:00 'Work around kernel memory leak'
Тогда ваши пользователи будут получать периодические напоминания, чтобы выйти по мере приближения времени - процесс будет более упорядоченным и профессиональным.
На традиционных юниорах rebootи shutdown -r nowкомандах стоят совершенно разные. При обычном использовании rebootбезопасно использовать только в однопользовательском режиме.
shutdown -r nowявляется каноническим методом для выключения различных * nix'ов и более безопасен для использования в целом и функционально эквивалентен init 6.
На FreeBSD есть разница между rebootи shutdown -r now. Со rebootстраницы руководства :
Обычно утилита shutdown (8) используется, когда система должна быть остановлена или перезапущена, давая пользователям заблаговременное предупреждение о надвигающейся гибели и корректно завершая работу определенных программ.