¿La mejor manera de reiniciar CentOS con gracia?

Siempre he utilizado el command:

shutdown -r now 

Sin embargo, a veces eso causa problemas de MySQL.

¿Cuál es la manera más graciosa de reiniciar CentOS?

He visto:

 reboot 

y

 halt 

¿Cómo puedo reiniciar suavemente la máquina?

No hay mejor manera de reiniciar el server mediante el uso de cualquier otra cosa que cualquiera de esos commands.

  • el apagado es la forma más común de detener el sistema.
  • reiniciar es un cierre de networkingondeo que hace un cierto mantenimiento del disco duro (synchronization y / o puesta en modo de espera y no es realmente relevante).
  • Las nuevas versiones de reboot (> 2.74) iniciarán el shutdown si no están en el nivel de ejecución 0 o 6.
  • La mayoría de los scripts de init llaman stop para hacer un log en utmp .

Las distribuciones modernas tendrán todas las tareas cubiertas independientemente del command que esté utilizando. Básicamente todos ellos inician el time de ejecución de apagado de sus scripts SysV (CentOS <7) o systemd (CentOS> = 7) (los llamaré scripts init para facilitar la lectura).

El cierre de scripts init paso a paso detiene todos sus services registrados bajo el nivel de ejecución 'S'. Las secuencias de commands init individuales pueden tener un time de espera, como el script de inicio de MySQL en CentOS. Cuando se da el argumento stop y el daemon no se apagará en un buen time, el script se detendrá y saldrá dando un error. El process de apagado continuará como si nada estuviera mal, sólo tardar un poco más y probablemente imprimir una advertencia. Al final, cuando todos los scripts init sean ejecutados, lo inevitable ocurrirá: todos los processs aún en ejecución recibirán una señal SIGTERM y, después de unos segundos (2 o 5), un SIGKILL . Esto limpiará el rest antes de que se haga una llamada ACPI para realmente reiniciar o apagar su sistema.

Una exception es utilizar el command reboot con la opción -f , esto omitirá la ejecución de scripts de init y reiniciará el sistema directamente.

Usted será mejor fijar la raíz-causa de sus preocupaciones: MySQL que no apaga correctamente.

A menudo esto se debe a la carga masiva de trabajo que debe hacerse antes de que el daemon se pueda salir con security. Una vez tuve una instancia de MySQL con +300.000 tablas que tomó más de una hora para salir. Pueden encontrarse problemas similares con los sistemas que utilizan buffers enormes y una escasa disponibilidad de E / S.

Un cierre gracioso de Centos 6.x debe hacerse usando el command como root:

 shutdown -h now 

Esto intentará detener todos los services en ejecución antes de apagar el server correctamente.

El uso de este command también evita problemas de socket mySQL.

Del mismo modo, para un gracioso reinicio:

 reboot -h now 

Puedes leer una respuesta anterior sobre una pregunta similar aquí:

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

Cuando doy instrucciones remotas a los usuarios finales y clientes, les poweroff usen poweroff para apagar y apagar el sistema.

Si quieren un reinicio en caliente, sugiero que utilicen el command reboot .

Supongo que se podría decir que la emisión de Ctrl-Alt-Delete también logra esto;)

Utilizo el command 'init 6'.

init 6 indica al process init que apague todos los processs / daemons generados como se escriben en los files de init (en el order inverso que iniciaron) y por último invoque el command shutdown -r now para reiniciar la máquina.

Más información se puede encontrar en esta pregunta .

Tengo la sensación de que tal vez no le guste esta respuesta, pero ESTA respuesta incluye una idea que ninguno de los demás considera. . . Usted escribe:

Siempre he utilizado el command:

shutdown -r ahora

Sin embargo, a veces eso causa problemas de MySQL.

El problema aquí no es su método de apagado, es el pedazo de software que no puede manejar un apagado correctamente; MySql.

La única manera en que realmente puede abordar esto es replace MySql (PostgreSql es un gran reemploop) o escribir su propio script de apagado que FIRST coddles MySql como un bebé, y cuando es feliz de ser cerrado, a continuación, cierra el sistema.

… Como una persona que se ha especializado en sistemas de bases de datos por más de 26 años, puedo decirte que es sólo en times muy recientes que MySql ha comenzado a actuar en relación con la competencia en las facetas más importantes de lo que los sistemas de bases de datos son para – security / integridad de los datos. Anteriormente, han prestado less atención a estos aspectos y más atención al performance. Pero ¿de qué sirve un gran performance si pierde datos? En algunas aplicaciones, como, digamos, Netflix streaming de grabación de video en el punto que está viendo, la fidelidad absoluta puede no ser particularmente importante – tal vez, incluso, a sus clientes como el video de copy de security un poco después de un fracaso. Pero en un sistema bancario, es un desastre de proporciones épicas. Sólo el propietario de los datos puede saber lo que es correcto para ellos.