Навіщо нам потрібна функція перезавантаження у різних бінарних файлах?
shutdown -r
і
reboot
Або вони в чомусь відрізняються?
Навіщо нам потрібна функція перезавантаження у різних бінарних файлах?
shutdown -r
і
reboot
Або вони в чомусь відрізняються?
Відповіді:
Нам обом вони не потрібні, але ми маємо їх як через історію Unix, так і через безліч версій.
З відповідних чоловічих сторінок:
відключення є більш загальним призначенням і потужнішим, тоді як перезавантаження дружніше і легше запам’ятати.
вимкнення дозволяє вказати тимчасовий аргумент (наприклад, перезапустити через 5 хвилин) і дозволяє зробити багато речей, крім перезавантаження, включаючи:
Тим НЕ менше, якщо ви просто хочете , щоб перезавантажити систему зараз, це простіше набрати reboot
ніж shutdown -r now
.
shutdown
використовуються зараз за замовчуванням. Не намагайтеся будь-коли отримати допомогу щодо відключення shutdown -h
, особливо не на сервері десь у центрі обробки даних.
Дві команди виконують щось по-іншому, однак вони можуть в кінцевому підсумку дзвонити один одному, тому вони, здається, роблять те саме!
reboot
буде викликати ядро для фактичного запуску апаратного перезавантаження. Однак це зробить це лише в тому випадку, якщо система готова до відключення - всі демони і користувацькі процеси повинні бути зупинені, файлові системи відключені і т. Д. Отже, вона перевіряє рівень запуску системи, і якщо це не 0 або 6, то вона фактично викликає shutdown
команда для вас.
shutdown
викликає зміну рівня запуску системи. Зміна рівня запуску (до 0 для зупинки або 6 для перезавантаження) запускає безліч скриптів у /etc/rc0.d або rc6.d, які закривають демон, демонтувати файлові системи тощо. Нарешті ці сценарії викликають halt
або reboot
- цього разу система перебуває у правильний рівень запуску, і вони вказують ядру перезавантажити (або зупинити).
Окрім того, що писав iconoclast, існує важлива відмінність між двома програмами: shutdown
є в /sbin
, а reboot
є в /usr/bin
.
Чому це має значення, запитаєте ви? Я скажу вам.
Це /usr
те, що не повинно бути доступним, поки система не завантажиться достатньо далеко, щоб система була мінімально функціональною. Каталоги верхнього рівня , які ніколи звичайно не монтуються на окремих файлових системах - /bin
, /etc
, /sbin
і т.д. - як очікується, буде доступні в той час як система досягає цього мінімально корисне стан. Існують різні наслідки цієї конструкції; наприклад, поганий стиль написання пункту "стоп" для сценарію init SysV, який використовує програми, /usr/bin
якщо є альтернатива в /bin
або /sbin
.
shutdown
- це ключова утиліта, яка завжди є. reboot
є лише зручною утилітою.
reboot
знаходиться в /sbin
Debian (з SysVinit) і Ubuntu (з upstart).