Я просто хочу знати різницю між
reboot
init 6
shutdown -r now
а який найбезпечніший і найкращий?
Я просто хочу знати різницю між
reboot
init 6
shutdown -r now
а який найбезпечніший і найкращий?
Відповіді:
Різниці в них немає. Всередині вони роблять точно те саме:
reboot
використовує shutdown
команду (з перемикачем -r). Команда відключення використовується для вбивства всіх запущених процесів, відключення всіх файлових систем і, нарешті, каже ядру видавати команду живлення ACPI. Джерело можна знайти тут . У старих дистрибутивах команда перезавантаження змушувала процеси виходити, видаючи SIGKILL
сигнал (все ще знайдений у джерелах, можна викликати -f
опцію), у більшості останніх дистрибутивів він налаштовується на більш витончені та непомітні init 1 -> shutdown -r
. Це гарантує, що демони очищаються перед відключенням.
init 6
повідомляє init
процесу вимкнути всі породжені процеси / демон, як записано у файлах init (у зворотному порядку, який вони почали), і нарешті викликає shutdown -r now
команду перезавантажити машину
Сьогодні немає великої різниці, оскільки обидві команди роблять точно так само, і вони поважають скрипти init, які використовуються для запуску служб / демонів, викликаючи скрипти для вимкнення для них. За винятком reboot -f -r now
зазначеного нижче
Існує невелике пояснення, взяте з керівників, чому reboot -f
це не безпечно:
-f, - сила Примушуйте негайно зупинити, вимкнути живлення, перезавантажити. Не звертайтеся до системи init.
Редагувати:
Забув згадати, у майбутніх дистрибутивах RHEL ви повинні використовувати нову systemctl
команду для видачі потужності / перезавантаження. Як вказується в сторінках керівництва про 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) використовується тоді, коли систему потрібно зупинити або перезапустити, даючи користувачам попереднє попередження про їхню приреченість і чітко припиняючи конкретні програми.