Зачем нам нужна функция перезагрузки в разных двоичных файлах?
shutdown -r
и
reboot
Или они чем-то отличаются?
Зачем нам нужна функция перезагрузки в разных двоичных файлах?
shutdown -r
и
reboot
Или они чем-то отличаются?
Ответы:
Мы не обязательно нуждаемся в них обоих, но у нас есть оба из-за истории Unix и его множества версий.
Из соответствующих страниц руководства:
Завершение работы более универсально и мощнее, а перезагрузка более удобна и легко запоминаема.
shutdown позволяет вам указать временный аргумент (например, для перезапуска через 5 минут) и помимо перезагрузки может выполнять множество действий, в том числе:
Однако, если вы просто хотите перезагрузить систему сейчас, набрать ее легче, reboot
чем shutdown -r now
.
shutdown
сейчас используются по умолчанию. Не пытайтесь получить помощь для выключения shutdown -h
когда-либо, особенно не на сервере где-нибудь в центре обработки данных.
Эти две команды делают что-то по-разному, однако в итоге они могут вызывать друг друга, поэтому они, похоже, делают одно и то же!
reboot
вызовет ядро, чтобы фактически запустить аппаратную перезагрузку. Тем не менее, он будет делать это только в том случае, если система готова к выключению - все демоны и пользовательские процессы должны быть остановлены, файловые системы размонтированы и т. Д. Таким образом, он проверяет уровень запуска системы, и если он не равен 0 или 6, то он фактически вызывает shutdown
команда для вас.
shutdown
вызывает изменение уровня выполнения системы. Изменение уровня выполнения (0 для остановки или 6 для перезагрузки) запускает множество скриптов в /etc/rc0.d или rc6.d, которые закрывают демоны, демонтируют файловые системы и т. Д. Наконец, эти скрипты вызывают halt
или reboot
- на этот раз система находится в правильный уровень выполнения, и они дают команду ядру перезагрузиться (или остановиться).
В дополнение к тому, что написал иконоборец, есть важное различие между двумя программами: shutdown
включено /sbin
, а reboot
включено /usr/bin
.
Вы спрашиваете, почему это важно? Я скажу тебе.
Ниже /usr
приведены те, которые не должны быть доступны, пока система не будет загружена достаточно далеко, чтобы система была минимально функциональной. Каталоги верхнего уровня , которые никогда традиционно не монтируются на отдельных файловых системах - /bin
, /etc
, /sbin
и т.д. - как ожидается, будет доступны в то время как система достигает этого минимально полезное состояние. Есть различные значения этого дизайна; например, неправильно писать предложение «stop» сценария инициализации SysV, который использует программы, /usr/bin
если есть альтернатива в /bin
или /sbin
.
shutdown
это ключевая утилита, всегда доступная. reboot
только для удобства
reboot
находится в /sbin
Debian (с SysVinit) и Ubuntu (с выскочкой).