Я всегда использовал команду:
shutdown -r now
Однако иногда это вызывает проблемы с MySQL.
Какой самый изящный способ перезапустить CentOS?
Я видел:
reboot
и
halt
Как можно аккуратно перезагрузить машину?
Нет лучшего способа перезапустить сервер, используя что-либо еще, кроме этих команд.
-r
и конкретное время (или 'now
') перезагрузит вашу систему, а не остановит ее после завершения работы.reboot
(> 2,74) инициирует shutdown
если не на уровне выполнения 0 или 6.В современных дистрибутивах решаются все задачи, независимо от того, какую команду вы используете. По сути, все они запускают время выключения вашего SysV (CentOS <7) или systemd (CentOS> = 7) скриптов (я назову их скриптами инициализации для удобства чтения).
Завершение работы с помощью сценариев инициализации, шаг за шагом, остановите все ваши службы, зарегистрированные под обычно уровень выполнения 'S'. Отдельные сценарии инициализации могут иметь тайм-аут, как сценарий инициализации MySQL в CentOS. Если задан аргумент остановки и демон не будет завершен в течение длительного времени, сценарий остановится и завершится с ошибкой. Процесс выключения будет продолжаться, как если бы ничего не случилось, только немного дольше и, возможно, выведет предупреждение. В конце, когда все сценарии инициализации будут выполнены, неизбежное произойдет: все все еще запущенные процессы получат 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 завершить работу всех порожденных процессов / демонов, как написано в файлах инициализации (в обратном порядке, в котором они были запущены), и, наконец, вызвать команду shutdown -r now для перезагрузки машины.
Более подробную информацию можно найти по этому вопросу.
Давая удаленные инструкции конечным пользователям и клиентам, я даю им указание использовать poweroff
для выключения и выключения системы.
Если им нужна теплая перезагрузка, я предлагаю им использовать reboot
команда.
Я полагаю, можно сказать, что выдача Ctrl-Alt-Delete
также выполняет это;)
У меня такое чувство, что вам может не понравиться этот ответ, но В ЭТОМ ответе есть некоторые идеи, которые никто из других не учитывает. . . Ты пишешь:
Я всегда использовал команду:
выключение -r сейчас
Однако иногда это вызывает проблемы с MySQL.
Проблема здесь НЕ в вашем методе выключения, а в том, что программа не может правильно обработать выключение; MySql.
ЕДИНСТВЕННЫЙ способ решить эту проблему - заменить MySql (PostgreSql - отличная замена) ИЛИ написать свой собственный сценарий выключения, который ПЕРВЫЙ суетится с MySql, как ребенок, и, когда он счастлив, чтобы его выключили, ТОГДА выключает систему.
... Как человек, специализирующийся на системах баз данных более 26 лет, я могу сказать вам, что MySql только в самое последнее время начал действовать сообща относительно компетентности в наиболее важных аспектах того, что такое системы баз данных. для - безопасность / целостность данных. Раньше этим аспектам уделялось меньше внимания, а производительности - больше. Но что хорошего в высокой производительности, если вы потеряете данные? В НЕКОТОРЫХ приложениях, таких как, скажем, потоковая запись видео Netflix, в какой момент вы просматриваете, абсолютная точность может не иметь особого значения - возможно, даже вашим клиентам НРАВИТСЯ резервное копирование видео после сбоя. Но в банковской системе это катастрофа эпических масштабов. Только владелец данных может знать, что им подходит.