Я использую команду reboot, чтобы перезагрузить сервер PostgreSQL, работающий на RHEL 7.
У нас также есть сервер разработки, работающий на CentOS 7.
Однако иногда я замечал повреждение базы данных или проблемы с файлами.
Есть ли такая команда безопасной перезагрузки, которая выполнит плавную перезагрузку нашего сервера CentOS или RHEL 7 без каких-либо проблем?
Как лучше всего перезапустить CentOS / RHEL через ssh?
Вообще нету корректного выключения или перезапуска.
Однако современный дистрибутив Linux отлично справляется с задачей, когда вам нужно перезагрузить сервер на базе CentOS или RHEL.
Давайте рассмотрим разные варианты перезапуска сервера CentOS / RHEL 7/8.
Безопасный перезапуск сервера CentOS или RHEL через ssh
- Команды RHEL / CentOS Linux, которые мы можем использовать для осторожного перезапуска сервера:
- Команда shutdown : все в одной команде для остановки, выключения или перезагрузки машины.
- Команда systemctl: команда Systemd systemctl также может перезагрузить или выключить ваш сервер.
- Команда reboot: символическая ссылка и алиас /sbin/systemctl для перезапуска CentOS / RHEL.
- Команда halt: опять же, символическая ссылка и алиас установлены на /sbin/systemctl, чтобы остановить CentOS / RHEL. Выключает и останавливает систему. Вам все равно нужно нажать кнопку выключения вручную.
- Команда poweroff: символическая ссылка или софт ссылка на /sbin/systemctl для выключения вашего CentOS / RHEL. Выключает и полностью отключает систему. Обратите внимание, что нет необходимости нажимать кнопку выключения питания.
Лучший способ правильно перезапустить CentOS или RHEL
Порядок действий такой:
Чтобы избежать проблем с PostgreSQL / MySQL / MariaDB, синхронизируйте кэшированные записи в постоянное хранилище от имени пользователя root, выполнив:
# sync;sync
Перезагрузите сервер CentOS / RHEL, запустите:
# shutdown -r now
Альтернативный и рекомендуемый способ, поскольку выключение / перезагрузка – это софт ссылка на /sbin/systemctl:
# systemctl reboot
или
# systemctl poweroff # <-- полное выключение
Лично я на вашем месте я бы выключил сервер базы данных перед командой перезагрузки:
# sync;sync # systemctl stop postgresql # systemctl stop mysql # MySQL/MariDB # systemctl reboot
Что такое перезагрузка, команды systemctl reboot или shutdown -r now
Откройте терминал и выполните следующую команду:
ls -l /sbin/{halt,reboot,poweroff,shutdown}
Все вышеперечисленные команды будут:
- Останавливать все запущенные процессы/службы.
- Отключать все файловые системы.
- Стирать временные файлы на диске
- Система перезагрузится.
Пожалуйста, не передавайте параметр –force для systemctl, так как он немедленно перезагрузит компьютер без завершения каких-либо процессов или размонтирования каких-либо файловых систем.
Это обязательно приведет к потере данных.
Поэтому избегайте следующего:
# systemctl --force --force reboot # systemctl --force --force shutdown
Когда следует использовать старую команду shutdown?
Команда shutdown имеет дополнительные параметры, включая обратную совместимость.
Например, отобразить сообщение:
sudo shutdown -r now "Сервер базы данных RHEL 8 отключается из-за обновления ядра." ## или ## sudo shutdown -r 0 "Сервер базы данных RHEL 8 отключается из-за обновления ядра." sudo shutdown -h now "Файловый сервер CentOS 7 выключается из-за замены диска."
«now» означает немедленно.
Мы можем передать строку времени в формате «чч: мм» для часа/минут, указав время для выполнения выключения, указанное в 24-часовом формате.
В качестве альтернативы, это может быть синтаксис «+ m», относящийся к установленному количеству минут m с этого момента.
Обратите внимание, что «now» является алиасом для «+0», т.е. запускает немедленное завершение работы.
Если аргумент времени не указан, подразумевается «+1»:
sudo shutdown -h +15 "Сервер CentOS NFS отключается для замены ssd через 15 минут. Сохраните все файлы" sudo shutdown -r +5 "Разработчики, сохраните ваши файлы, поскольку devbox перезагружается через 5 минут."
Мы можем отменить отложенное завершение работы.
Это может использоваться для отмены эффекта вызова выключения с аргументом времени, который не равен «+0» или «now»:
sudo shutdown -c
Как узнать дату и время перезагрузки системы CentOS / RHEL?
Заключение
Вы узнали о правильном способе выключения или перезапуска вашего CentOS / RHEL, и мы также рекомендуем вам хранить проверенные резервные копии, чтобы избежать потери данных.