Назад | Перейти на главную страницу

Лучший способ изящно перезапустить CentOS?

Я всегда использовал команду:

shutdown -r now

Однако иногда это вызывает проблемы с MySQL.

Какой самый изящный способ перезапустить CentOS?

Я видел:

reboot

и

halt

Как можно аккуратно перезагрузить машину?

Нет лучшего способа перезапустить сервер, используя что-либо еще, кроме этих команд.

  • неисправность это наиболее распространенный способ остановить вашу систему. Добавление аргумента -r и конкретное время (или 'now') перезагрузит вашу систему, а не остановит ее после завершения работы.
  • перезагрузка представляет собой завершение цикла оболочки, которое выполняет некоторое обслуживание жесткого диска (синхронизирует и / или переводит в режим ожидания и не имеет особого значения).
  • Новые версии reboot (> 2,74) инициирует shutdown если не на уровне выполнения 0 или 6.
  • Большинство сценариев инициализации вызывают остановка сделать вход utmp.

В современных дистрибутивах решаются все задачи, независимо от того, какую команду вы используете. По сути, все они запускают время выключения вашего 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

Вы можете прочитать предыдущий ответ на аналогичный вопрос здесь:

https://stackoverflow.com/questions/20407292/centos-another-mysql-daemon-already-running-with-the-same-unix-socket

Я использую команду init 6.

init 6 сообщает процессу init завершить работу всех порожденных процессов / демонов, как написано в файлах инициализации (в обратном порядке, в котором они были запущены), и, наконец, вызвать команду shutdown -r now для перезагрузки машины.

Более подробную информацию можно найти по этому вопросу.

Давая удаленные инструкции конечным пользователям и клиентам, я даю им указание использовать poweroff для выключения и выключения системы.

Если им нужна теплая перезагрузка, я предлагаю им использовать reboot команда.

Я полагаю, можно сказать, что выдача Ctrl-Alt-Delete также выполняет это;)

У меня такое чувство, что вам может не понравиться этот ответ, но В ЭТОМ ответе есть некоторые идеи, которые никто из других не учитывает. . . Ты пишешь:

Я всегда использовал команду:

выключение -r сейчас

Однако иногда это вызывает проблемы с MySQL.

Проблема здесь НЕ в вашем методе выключения, а в том, что программа не может правильно обработать выключение; MySql.

ЕДИНСТВЕННЫЙ способ решить эту проблему - заменить MySql (PostgreSql - отличная замена) ИЛИ написать свой собственный сценарий выключения, который ПЕРВЫЙ суетится с MySql, как ребенок, и, когда он счастлив, чтобы его выключили, ТОГДА выключает систему.

... Как человек, специализирующийся на системах баз данных более 26 лет, я могу сказать вам, что MySql только в самое последнее время начал действовать сообща относительно компетентности в наиболее важных аспектах того, что такое системы баз данных. для - безопасность / целостность данных. Раньше этим аспектам уделялось меньше внимания, а производительности - больше. Но что хорошего в высокой производительности, если вы потеряете данные? В НЕКОТОРЫХ приложениях, таких как, скажем, потоковая запись видео Netflix, в какой момент вы просматриваете, абсолютная точность может не иметь особого значения - возможно, даже вашим клиентам НРАВИТСЯ резервное копирование видео после сбоя. Но в банковской системе это катастрофа эпических масштабов. Только владелец данных может знать, что им подходит.