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.
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.
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í.