Лучший способ изящно перезапустить CentOS?
Я всегда использовал команду:
shutdown -r now
Однако иногда это вызывает проблемы с MySQL.
Какой самый изящный способ перезапустить CentOS?
Я видел:
reboot
а также
halt
Как я могу аккуратно перезагрузить машину?
5 ответов
Нет лучшего способа перезапустить ваш сервер, используя что-либо, кроме этих команд.
- выключение - самый распространенный способ остановить вашу систему. Добавление аргумента
-r
и конкретное время (илиnow
') перезагрузит вашу систему, а не остановит ее после завершения работы. - перезагрузка - это завершение работы оболочки, которая выполняет обслуживание жесткого диска (синхронизация и / или перевод в режим ожидания, что не очень актуально).
- Новые версии
reboot
(>2.74) будет инициироватьshutdown
если не на уровне выполнения 0 или 6. - Большинство сценариев инициализации вызывают halt, чтобы войти в utmp.
В современных дистрибутивах будут рассмотрены все задачи независимо от того, какую команду вы используете. По сути, все они инициируют время выполнения ваших сценариев SysV (CentOS <7) или systemd (CentOS> = 7) (я буду называть их сценариями init для простоты чтения).
Завершение работы с помощью сценариев инициализации шаг за шагом останавливает все ваши службы, зарегистрированные под обычно уровнем запуска 'S'. Индивидуальные сценарии инициализации могут иметь время ожидания, как сценарий инициализации MySQL в CentOS. Когда задан аргумент stop и демон не будет отключен в течение достаточного количества времени, сценарий остановится и завершится, что приведет к ошибке. Процесс выключения будет продолжаться, как будто ничего не случилось, только займет немного больше времени и, вероятно, напечатает предупреждение. В конце, когда все сценарии инициализации будут выполнены, произойдет неизбежное: все запущенные процессы получат SIGTERM
сигнал и через несколько секунд (2 или 5), SIGKILL
, Это очистит все остальное до того, как будет сделан вызов ACPI, чтобы действительно перезагрузить или завершить работу вашей системы.
Одним исключением является использование reboot
команда с -f
опция, это пропустит выполнение сценариев инициализации и перезагрузит систему напрямую.
Вам будет лучше устранить основную причину ваших забот: MySQL не завершает свою работу должным образом.
Часто это происходит из-за огромного объема работы, которую необходимо выполнить, прежде чем можно будет безопасно выйти из демона. Однажды у меня был экземпляр MySQL с таблицами +300.000, на выход которого ушло более часа. Подобные проблемы могут быть обнаружены в системах, использующих огромные буферы и редкую доступность ввода / вывода.
Для корректного завершения работы Centos 6.x следует использовать команду от имени root:
shutdown -h now
Это попытается остановить все запущенные службы, прежде чем корректно завершить работу сервера.
Использование этой команды также предотвращает проблемы с сокетом mySQL.
Точно так же для изящной перезагрузки:
reboot -h now
Вы можете прочитать предыдущий ответ о подобном вопросе здесь:
Я использую команду "init 6".
init 6 говорит процессу init отключить все порожденные процессы / демоны, как записано в файлах init (в обратном порядке, в котором они были запущены), и, наконец, вызвать команду shutdown -r now для перезагрузки компьютера.
Более подробную информацию можно найти по этому вопросу.
Я чувствую, что вам может не понравиться этот ответ, но этот ответ включает в себя некоторые идеи, которые другие не рассматривают.,, Ты пишешь:
Я всегда использовал команду:
выключение -r сейчас
Однако иногда это вызывает проблемы с MySQL.
Проблема здесь НЕ в вашем методе выключения, а в том программном обеспечении, которое не может правильно справиться с выключением; MySql.
Единственный способ действительно решить эту проблему - заменить MySql (PostgreSql - отличная замена) ИЛИ написать свой собственный скрипт выключения, который ПЕРВЫЙ балует MySql, как ребенок, и когда он счастлив, что его закрывают, ТО выключает систему.
... Как человек, который специализируется на системах баз данных более 26 лет, я могу вам сказать, что только в очень недавние времена MySql начал действовать в отношении компетентности в наиболее важных аспектах систем баз данных. для - безопасность / целостность данных. Раньше они обращали меньше внимания на эти аспекты и больше внимания на производительность. Но что хорошего в отличной производительности, если вы потеряете данные? В НЕКОТОРЫХ приложениях, таких как, скажем, потоковая запись видео Netflix, в какой момент вы просматриваете, абсолютная точность может не иметь особого значения - может быть, даже ваши клиенты НРАВИТСЯ, что видео немного копируется после сбоя. Но в банковской системе это катастрофа эпических масштабов. Только владелец данных может знать, что им подходит.
Давая удаленные инструкции конечным пользователям и клиентам, я даю им указание использовать poweroff
выключить и выключить систему.
Если они хотят теплую перезагрузку, я предлагаю им использовать reboot
команда.
Я полагаю, можно сказать, что выдачаCtrl-Alt-Delete
и выполняет это;)