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


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

shutdown -r now

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

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

Я видел:

reboot

а также

halt

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


62
2017-08-15 01:48


Источник


reboot по существу является псевдонимом shutdown -r ...так что да. - Nathan C
Отвечала ли моя почта на ваш вопрос, или вам нужно знать что-нибудь еще? - Joffrey
Не могу здесь прокомментировать, но я хотел поставить здесь предупреждение о перезагрузке. Если экземпляр находится на Amazon EC2, выполните перезагрузку - теперь он закроет экземпляр, поэтому никогда этого не делайте. Вместо этого, если вам нужно выключить или перезагрузить компьютер, сделайте это через онлайн-интерфейс Amazon, а не оболочку. Если вы сделаете кирпичный экземпляр, вы можете остановить его, отсоединить том, создать отдельный экземпляр и прикрепить к нему том тома, не отделяя первый том от нового экземпляра. Затем вам понадобится ssh в новый экземпляр, смонтируйте старый том и вытащите файлы из него. - kloddant
на самом деле, вы хотите запустить sync: sync; перед запуском shutdown -r поэтому все файлы ввода / вывода будут синхронизированы. Я подозреваю, что это также устранит проблему с mysql - user3629249


Ответы:


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

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

Современные дистрибутивы будут охватывать все задачи независимо от используемой вами команды. В основном все они инициируют время завершения работы вашего SysV (CentOS <7) или Systemd (CentOS> = 7) (я буду называть их скриптами для упрощения чтения).

Выключение с помощью сценариев инициализации шаг за шагом останавливает все ваши службы, зарегистрированные, как правило, Уровень выполнения 'S'. Отдельные сценарии инициализации могут иметь таймаут, например, скрипт инициализации MySQL в CentOS. Когда дается аргумент stop, и демон не будет завершен в течение достаточного количества времени, сценарий остановится и завершит отказ. Процесс завершения работы будет продолжаться, как будто ничего не случилось, только немного задержавшись и, вероятно, выведет предупреждение. В конце, когда все скрипты init выполняются, неизбежно произойдет: все процессы, все еще запущенные, получат SIGTERM  сигнал и через несколько секунд (2 или 5), SIGKILL, Это очистит остальную часть до ACPI вызов выполняется для действительно перезагрузки или выключения вашей системы.

Исключением является использование reboot команды с -f option, это пропустит выполнение сценариев инициализации и перезагрузит систему напрямую.

Вам будет лучше исправить основную причину ваших забот: MySQL не отключается должным образом.

Часто это связано с огромной нагрузкой на работу, которая должна быть выполнена до того, как демон можно будет безопасно выйти. У меня когда-то был экземпляр MySQL с таблицами +300.000, которые заняли более часа, чтобы выйти. Аналогичные проблемы можно найти в системах с использованием огромных буферов и разрешенной доступности ввода / вывода.


72
2017-08-23 21:27



+1 Это правильно, для realz !! - ewwhite
Ух, ненавидьте ответы, которые глубже, и затем никогда не заявляют просто «это путь». Так это «shutdown -r now» или что такое правильная строка перезагрузки? - jterm
@jterm, Ugh, ненавидят ответы, которые являются способом неглубокого и только утверждают «это способ», не обучая меня тому, что я прошу, и не понимаю возможные решения. - Joffrey
@Joffrey Ditto. Существует несколько способов плохо ответить на вопрос. - jterm
Это очень плохой ответ! - Rauli Rajande


Грациозное завершение работы 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


24
2017-09-04 21:26



Я думаю, вы имеете в виду shutdown -r now, или, возможно, просто reboot, reboot команда не имеет -h вариант. - Michael Hampton♦
Привет Майкл, Centos 6.x действительно имеет возможность остановить службы перед перезагрузкой. «shutdown -h now» - изящное завершение работы, а «reboot -h now» - изящная перезагрузка. Попробуйте на своем сервере Centos ... - GeckoSEO
Ой? И что это -h вариант делать? Это не на странице руководства. - Michael Hampton♦
В самом деле? У вас есть документация для этого? Потому что, во-первых, это то, что reboot делает без  -h, Во-вторых, это вообще не документировано, насколько я могу судить. - Michael Hampton♦
уточнить, при использовании shutdown WITHOUT -h у нас были постоянные проблемы с сокетами для mySQL. Начиная с начала использования -h проблема никогда не повторялась. - GeckoSEO


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

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

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


2
2017-08-15 02:04



Я не согласен с этим ответом. перезагрузка и завершение работы (Ctrl-Alt-Delete) является сильным и может в некоторых средах, таких как запущенные mySQL, вызывать «блокировку» сокета, что затем требует создания нового сокета или удаления / перемещения существующего сокета до воссоздания нового один. - GeckoSEO
@GeckoSEO Это было смелое предложение, касающееся опасность включения Ctrl-Alt-Delete на серверах Linux. - ewwhite
мой ответ, с другой стороны, был неважным, я просто пытался разъяснить ответ тем, кто пытается решить этот вопрос. Пожалуйста, см. Мой предыдущий ответ, я надеюсь, что это поможет. - GeckoSEO


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

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

Дополнительная информация может быть найдена по этому вопросу,


2
2017-08-26 14:35





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

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

shutdown -r сейчас

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

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

Единственный способ, которым вы действительно можете справиться с этим, - заменить MySql (PostgreSql - отличная замена) ИЛИ написать собственный сценарий выключения, который FIRST ловит MySql, как ребенок, и когда он счастлив быть выключенным, THEN выключает систему.

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


0
2018-04-16 00:31



Замените mysql только потому, что проблемы перезапуска или выключения системы? И последняя часть решения ничего не способствует решению проблемы человека, который ставит вопрос - ftrujillo