Suponiendo que acaba de ingresar el comando shutdown -h now(o algo equivalente), ¿hay realmente algo que pueda hacer (si es lo suficientemente rápido) para evitar que la máquina se apague?
Una vez que invocas shutdown -h now, creo que pierdes el acceso a la línea de comandos de manera similar, por halt -plo que no hay mucho que puedas hacer.
Ken
@Ken: en Ubuntu y Centos conectados mediante masilla, la línea de comando permanece disponible durante unos segundos.
¿Por qué decir "ahora" si no quiere decir "ahora"?
Fred Nurk
Respuestas:
22
Puede ejecutar shutdown -cpara cancelar un apagado que ya se está ejecutando.
Al principio no lo creía, pero sí. Más específicamentectrl+c
Ken
2
@Ken: shutdown -c y [Ctrl] + [c] son completamente diferentes. shutdown -c es un comando que cancela un apagado programado previamente (incluso "ahora" está programado en este sentido --- pero si la cancelación evitará el reinicio es un poco una carrera en ese caso). [Ctrl] + [c] hará que su terminal genere una SIGINT (señal de interrupción) a cualquier proceso que esté conectado actualmente. Esto podría funcionar en un comando de apagado en ejecución, pero eso es bastante incidental a su pregunta.
Jim Dennis
1
@ Jim Dennis: Soy consciente de la diferencia entre ctrc+cy shutdown -c. Pero dada la velocidad de la -now opción en lugar de su hermano programado, ctrl+csería la ruta más rápida para ese fin. No creía que pudieras detener un cierre inmanente, aún más sorprendido de que puedas interrumpirlo, pero aparentemente puedes, pero es una carrera como dijiste.
Ken
13
Si eres lo suficientemente rápido, puedes emitir un init 2(o el nivel de ejecución que quieras) y eso probablemente detendrá el apagado. Cualquier cosa que implique matar el comando de apagado fallará ya que el comando se ejecuta demasiado rápido
Intenté esto con el siguiente script e incluso no es lo suficientemente rápido como para detener el apagado
#!/bin/bash
shutdown -h now
shutdown -c "Aborting Shutdown"
Broadcast message from iain@iain-ubuntu
(/dev/pts/0) at 16:50 ...
The system is going down for halt NOW!
shutdown: Cannot find pid of running shutdown
supongamos que envió un mensaje de reinicio o apagado a todos los terminales con fines de mantenimiento de que "el servidor se reiniciará o apagará por motivos de mantenimiento en 10 minutos"
shutdown -h now
, creo que pierdes el acceso a la línea de comandos de manera similar, porhalt -p
lo que no hay mucho que puedas hacer.Respuestas:
Puede ejecutar
shutdown -c
para cancelar un apagado que ya se está ejecutando.fuente
ctrl+c
ctrc+c
yshutdown -c
. Pero dada la velocidad de la-now
opción en lugar de su hermano programado,ctrl+c
sería la ruta más rápida para ese fin. No creía que pudieras detener un cierre inmanente, aún más sorprendido de que puedas interrumpirlo, pero aparentemente puedes, pero es una carrera como dijiste.Si eres lo suficientemente rápido, puedes emitir un
init 2
(o el nivel de ejecución que quieras) y eso probablemente detendrá el apagado. Cualquier cosa que implique matar el comando de apagado fallará ya que el comando se ejecuta demasiado rápidoIntenté esto con el siguiente script e incluso no es lo suficientemente rápido como para detener el apagado
Donde tan interactivamente
El sistema se mantiene activo.
fuente
Desde la página de manual de FreeBSD:
Entonces
killall shutdown
funciona en BSD cuando hay un apagado programado (por ejemploshudown -h +5
).No creo que sea factible cancelar un apagado inmediato (
shutdown -h now
) en el escenario de la vida real.fuente
supongamos que envió un mensaje de reinicio o apagado a todos los terminales con fines de mantenimiento de que "el servidor se reiniciará o apagará por motivos de mantenimiento en 10 minutos"
Este tipo de comando puede cancelar.
solo presiona Ctrl+C
fuente