Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
Как вы перезагружаете свой Linux? Есть несколько способов перезагрузить систему Linux. Чаще всего используются 2 из них: консольные утилиты shutdown или reboot. # shutdown -r now # reboot На первый взгляд они выполняют идентичное действие. Тогда не понятно, зачем печатать больше, если можно печатать меньше. Есть старое мнение, что эти команды работают по-разному. И тянется это с BSD систем. Насколько мне известно, как минимум в Linux это уже не так. C переходом на systemd, обе эти команды всего лишь символьные ссылки на /bin/systemctl и в этом легко убедиться. # ls -l /usr/sbin/reboot /usr/sbin/reboot -> /bin/systemctl # ls -l /usr/sbin/shutdown /usr/sbin/shutdown -> /bin/systemctl Я же раньше слышал мнение, что shutdown сначала останавливает все запущенные процессы, ждёт их завершения, размонтирует все файловые системы и только после этого отдаёт команду ядру на выключение. А команда reboot сразу отправляет SIGKILL всем процессам для их немедленного завершения, ничего не дожидается и перезагружает систему. Её стоит использовать, когда обычный shutdown по какой-то причине не может перезагрузить сервер. Для современных Linux дистрибутивов это неверное утверждение. Лично я сейчас все сервера перезагружаю через reboot из-за того, что в этой команде меньше шансов ошибиться и поставить не тот аргумент или опечататься. Дам ещё небольшую подсказку в рамках этой темы. И shutdown, и reboot обращаются к бинарникам операционной системы. Если у вас какие-то проблемы с диском и не удаётся прочитать этот бинарник, то перезагрузка не состоится. Если запущена консоль, то можно через неё сразу передать команду на перезагрузку напрямую ядру: # echo b > /proc/sysrq-trigger Если же вы перед физической консолью сервера, то можно отправить команду через одну из комбинаций Linux Magic System Request Key - ALT-SysRq-b. Возвращаясь к изначальной теме. У кого-нибудь есть точная информация на этот счёт? Есть ли ещё где-то разница между этими командами? #linux