🖥️ Перезагрузка или выключение GNU/Linux. В чем разница shutdown -r now и reboot?
На чем опробовано: Rocky Linux 9.5 (Blue Onyx)/ Debian GNU/Linux 12 (bookworm)/ Ubuntu 24.04.1 LTS/ Fedora Linux 41 (KDE Plasma)
В чем разница shutdown -r now и reboot?
В чем разница между командами в терминале shutdown -r now
и reboot
?
Ведь обе эти команды делают кажется одно и тоже — перезагружают операционную систему. Для чего вводить shutdown -r now
, если данная команда заметно длиннее?
На первый взгляд, обе команды действительно делают лишь то, что перезагружают операционную систему GNU\Linux. Разница состоит в том, как эти команды выполняют перезагрузку.
Команда shutdown -r.
Команда shutdown -r
now указывает операционной системе GNU\Linux перезагрузить систему сейчас, на что указывает конец данной команды, а именно now
.
$ sudo shutdown -r now
Синтаксис:
shutdown [OPTIONS…] [TIME] [WALL…]
Выключить систему.
Опции:
-- help
— показать справку.
-H
, --halt
— остановить машину
-P
, --poweroff
— выключить машину
-r
, --reboot
— перезагрузить машину
-h
— эквивалентно --poweroff
, отменяется при использовании --halt
.
-k
— не останавливать/выключать/перезагружать, просто отправить предупреждения.
--no-wall
— не отправлять сообщение wall
2 перед остановкой/выключением/перезагрузкой.
-c
— отменить запланированное выключение.
--show
— показать запланированное выключение.
Но на саму перезагрузку это конечно не влияет. Все дело в том, что команда shutdown -r
выполняет корректное завершение процесса работы, то есть ждёт необходимое для завершения работы программы время, а это может занять достаточно долгое время. Если же система вдруг по каким либо причинам повисла, время это может растянутся на десятки минут или дольше. Это не всегда удобно, но безопаснее для данных.
Выключение хоста:
$ sudo shutdown -h now
На некоторых системах GNU\Linux команда перезапуска хоста может не работать, для перезапуска хоста воспользуйтесь другой командой:
$ sudo systemctl reboot
А для выключения хоста воспользуйтесь другой командой:
$ sudo systemctl poweroff
Команда reboot.
Команда reboot
просто посылает команду перезагрузки и совершенно не ждет корректного завершения работы. Это может оказаться удобно при зависании системы, но для постоянного использования нежелательно — вы испортите базы данных или получите повреждение файлов на диске.
$ sudo reboot -f
Синтаксис:
reboot [OPTIONS...] [ARG]
Опции:
-- help
— показать справку.
-- halt
— остановить машину.
-p
, --poweroff
— выключить машину.
--reboot
— перезагрузить машину.
-f
, --force
— принудительно немедленно остановить/выключить/перезагрузить. Не обращается к системе инициализации.
-w
, --wtmp-only
— не останавливать/выключать/перезагружать, просто записать запись в wtmp
1.
-d
, --no-wtmp
— не записывать запись в wtmp
.
--no-wall
— не отправлять сообщение wall
2 перед остановкой/выключением/перезагрузкой.
Дополнительная информация.
1. Запись wtmp
— это файл в GNU\Linux операционных системах, который сохраняет информацию о входах и выходах пользователей, а также событиях, связанных с изменением состояния системы, таких как перезагрузки и выключения.
Файл wtmp
обычно находится в каталоге /var/log
и называется wtmp
или utmp
. Он используется для ведения журнала всех событий, касающихся пользователей и системы, и позволяет администраторам отслеживать действия пользователей, анализировать загрузку системы и выявлять возможные проблемы.
В отличие от файла utmp
, который хранит информацию о текущих пользователей, wtmp
предоставляет полный исторический журнал событий. Это позволяет, например, узнать, кто и когда входил в систему или когда происходили перезагрузки.
2. Команда “send wall message“
относится к команде wall
в GNU\Linux системах, которая используется для отправки текстовых сообщений всем пользователям, которые в данный момент вошли в систему. Слово “wall”
является сокращением от “write to all”
.
Когда администратор системы (или любой пользователь с соответствующими правами) отправляет сообщение с помощью команды wall
, оно отображается на терминалах всех активно вошедших пользователей. Это может быть полезно для уведомления всех пользователей о важных событиях, таких как запланированные выключения системы, предупреждения о технических работах или другие важные сообщения.
В контексте команды reboot
или halt
, опция --no-wall
(или аналогичная) позволяет предотвратить отправку такого уведомления перед выполнением перезагрузки или выключения системы. Это может быть полезно в ситуациях, когда администратор хочет провести операцию быстро, не уведомляя при этом пользователей.
Итог.
Если Вам необходимо просто перезагрузить систему то желательно использовать shutdown -r now
. Что позволит корректно завершить процесс работы и перезагрузить операционную систему GNU\Linux.
В тех же случаях когда система повисла и нам необходимо как можно быстрее перезагрузить нашу систему GNU\Linux, используем команду reboot
. Она прикажет перезагрузить операционную систему GNU\Linux несмотря ни на что.
Оригиналы источников информации.
- dnevnik—konstantin.blogspot.com Перезагрузка Linux в чем разница reboot и shutdown -r now.