Como administrador de sistemas, una de las actividades frecuentes es reiniciar o apagar los servidores.

Esto puede deberse a una actividad de mantenimiento regular como la aplicación de parches en el SO o a algún fallo de hardware que requiera apagar un sistema para su mantenimiento.

Un sistema Linux ofrece varias formas diferentes de reiniciar o apagar el servidor. Un sistema normal debería responder a cualquier comando mientras que un servidor degradado puede necesitar un reinicio forzado. Tenga en cuenta que la mayoría de estos comandos requerirán un cierto nivel de privilegio ya sea como superusuario o con sudo para ser ejecutados con éxito ya que reiniciar un sistema es una tarea administrativa y para un sistema multiusuario o un servidor que ejecuta procesos críticos, reiniciar o apagar es una actividad perturbadora.

Este artículo cubre algunos de estos métodos que pueden ayudarle con la actividad de reinicio/apagado de Linux.

Método GUI

Si está utilizando un entorno de escritorio GUI para Linux como Gnome, KDE, Mate, XFCE, etc., encontrará un botón de encendido en el menú del sistema/aplicación que ofrece acciones como cerrar sesión, reiniciar, hibernar o apagar. Las opciones disponibles pueden diferir ligeramente en función de la distribución, el entorno de escritorio y la versión del SO que se esté utilizando. Pero seguro que encontrará opciones relacionadas con la energía en los menús disponibles para cambiar el estado de energía de su sistema.

Por ejemplo, en mi escritorio Ubuntu Mate, puedo encontrar la opción Apagar en el menú de energía en la parte superior derecha de mi pantalla.

Ubuntu mate shut down gui

Una vez que seleccione la opción «Apagar…», se le presentará un diálogo con múltiples opciones como Suspender, Reiniciar, Cancelar y Apagar. Puede continuar con Reiniciar o Apagar pulsando el botón derecho o cancelar y volver a su entorno de escritorio.

Ubuntu mate shut down

La GUI ofrecida y las opciones pueden diferir ligeramente según la distribución y el entorno de escritorio que esté utilizando, pero puede estar seguro de que existe una opción para cambiar el estado de energía del sistema. Y con GUI, no es más que unos pocos clics en el menú de encendido.

comando systemctl

En una caja Linux que ejecute systemd como sistema init, puede utilizar el comando systemctl para reiniciar su máquina.

$ sudo systemctl start reiniciar.target

O simplemente puede utilizar systemctl con la opción requerida, como para reiniciar como:

$ sudo systemctl reboot

Para iniciar un apagado, el comando systemctl es como:

$ sudo systemctl shutdown

Para detener el sistema, utilice

$ sudo systemctl halt

comando shutdown

el comandoshutdown puede utilizarse tanto para apagar como para reiniciar un sistema Linux. Para reiniciar un sistema inmediatamente utilice

$ sudo shutdown -r now

O para apagar un sistema sin esperar, utilice la bandera -h o -P:

$ sudo shutdown -P now 

Podemos añadir un retardo al comando shutdown para reiniciar/apagar el sistema después de un intervalo especificado. Esto se puede lograr como:

$ sudo shutdown -r 10

Para detener un sistema sin pedir al hardware que lo apague, puede utilizar la bandera -H:

$ sudo shutdown -H ahora

Si simplemente especifica el comando shutdown, el apagado se programará al cabo de un minuto. Para apagar a una hora específica utilice:

$ sudo shutdown 22:30

En muchos casos, mientras un sistema se apaga emitirá un mensaje a la consola de los usuarios conectados. Si desea añadir su mensaje personalizado en esta emisión, puede especificar un mensaje junto con el comando shutdown como:

$ sudo shutdown 23:00 "Apagando el sistema por mantenimiento...guarde su trabajo"

Para cancelar un apagado programado, puede utilizar la bandera -c:

$ sudo shutdown -c

En algunos sistemas, el comando shutdown llama a systemctl en el backend para lograr la operación de reinicio/apagado deseada.

Comando de reinicio

Para reiniciar con gracia un sistema, también puede utilizar el comando reboot (puede ser necesario utilizarlo con sudo).

$ sudo reboot

Para apagar el sistema con el comando reboot, utilice la bandera -p:

$ sudo reboot -p

Para forzar un reinicio (para sistemas que no responden al comando reboot normal), puede probar la bandera -f como:

$ sudo reboot -f

Comando Halt

Para detener un sistema, puede utilizar simplemente el comando halt:

$ sudo halt

Comando Poweroff

Para apagar un sistema, tiene la opción de utilizar el comando poweroff:

$ sudo poweroff

comando init

Para los sistemas que no funcionan con systemd, el comando init(telinit también funcionará) ofrece opciones para cambiar el nivel de ejecución del sistema. Para reiniciar un sistema utilizando init, puede utilizar:

$ sudo init 6

Del mismo modo para detener un sistema, el comando init a utilizar es:

$ sudo init 0

Llamar a un nivel de ejecución específico utilizando init hace que el proceso init del sistema ejecute una serie de scripts init en un orden determinado para asegurar que el sistema alcanza el nivel de ejecución deseado. El nivel de ejecución 6 se define para reiniciar mientras que el nivel de ejecución 0 si para detener el sistema.

Botón de encendido

Para Linux ejecutándose en un ordenador de sobremesa o portátil, pulsar el botón de encendido por defecto tiene la acción de poner el sistema en reposo o apagarlo enviando la señal de apagado. Esta opción puede ajustarse desde la configuración de energía del sistema. Aunque lo ideal es utilizarla como última opción si los comandos normales no funcionan.

Para un servidor remoto que ejecuta Linux, el botón de encendido suele apagar el sistema. Pero los situados en centros de datos remotos tienen la opción adicional de ser reiniciados o apagados desde sus herramientas CLI/GUI de gestión remota de apagado de luces ofrecidas por los respectivos proveedores de servidores.

Combinación Alt SysRq

Para un sistema que no responde y está congelado, es difícil llevarlo a un estado de reinicio o apagado. Cuando no tenga otra opción y como último recurso, puede probar a pulsar Alt PrintScreen una secuencia de teclas para reiniciar instantáneamente el sistema. Puede que no sea una opción preferida o recomendada, pero sin embargo puede utilizarse como último recurso.

Recuerde siempre que existe la posibilidad de pérdida y corrupción de datos al utilizar este método, al igual que con cualquier otra opción de reinicio o apagado forzado y sin gracia. Asegúrese de las mejores prácticas del sistema en cuanto a copias de seguridad y redundancia y tenga cuidado cuando utilice esta opción.

Para que esta opción funcione, debería haber sido habilitada en el núcleo de Linux. Puede comprobarlo utilizando el siguiente comando:

$ cat /proc/sys/kernel/sysrq

Un resultado de 1 indica que está completamente habilitada, mientras que un número mayor que indica que está parcialmente habilitada con algunas características. Para habilitarlo explícitamente, puede utilizar:

$ sudo echo "1" > /proc/sys/kernel/sysrq

Para reiniciar un sistema utilizando este método, mantenga pulsada la tecla Alt SysRq (PrintScreen) y después pulse en secuencia las siguientes teclas tras un intervalo de unos segundos entre cada tecla:

R E I S U B

o para apagar pulse O en lugar de B al final:

R E I S U O

He aquí el significado de las teclas:

  • R: Cambiar el teclado de modo raw a modo XLATE
  • E: Enviar señal SIGTERM a todos los procesos excepto init
  • I: Enviar señal SIGKILL a todos los procesos excepto init
  • S: Sincronizar todos los sistemas de archivos montados
  • U: Volver a montar todos los sistemas de archivos montados como sólo lectura

Por último, tenemos B u O que significan:

  • B: Reiniciar inmediatamente el sistema, sin desmontar particiones ni sincronizar

O

  • O: Apague inmediatamente el sistema, sin desmontar particiones ni sincronizar

Resumen

Así que aquí van diferentes formas que le permiten reiniciar o apagar un sistema Linux. Le ofrece opciones que van desde simples interfaces GUI hasta comandos de terminal relativamente complejos que pueden hacerle la vida más fácil o incluso le permiten automatizar cosas. Para sistemas que se congelaron por una razón u otra, discutimos formas forzadas de lograr un estado de reinicio o apagado que pueden no ser la forma ideal pero tienen que ser usadas en raras ocasiones.

Tome precauciones al utilizar los comandos discutidos en este artículo ya que afectan al estado del sistema y posiblemente podrían afectar a múltiples usuarios y servicios en el caso de un servidor empresarial. Consulte las páginas man de los comandos sugeridos en este artículo para saber más sobre ellos y todas las opciones que ofrecen.

Aprenda a configurar WAS para que deje de pedir la contraseña durante el apagado aquí.