No sugiero hacer lo siguiente si no se ve obligado por razones realmente especiales:
kill -SEGV 1 # should generate a core dumps and kernel panic
kill -ABRT 1 # should generate a core dumps and kernel panic
kill -9 1 # On old systems worked nowadays not
Es duro, brutal y puede considerarse un equivalente cercano a desconectar el cable de alimentación ...
La forma correcta es shutdown -h now
con sudo
antes cuando sea necesario.
Tal vez debería decir la manera legal ; ver abajo o mejor tl; dr.
Algunas palabras más , también conocido como La historia, Capítulo I
Al principio fue el init y será hasta el final.
Todo Linux depende del cuidado amoroso de init [ 1 ] [ 2 ] . Sin embargo, y no sin una cierta cantidad de ingratitud, hubo un tiempo en el que el buen Dios usuario root puede traicionar este amor y de repente kill
init con un incontestable ( -9
orden).
( El Libro de Etiqueta prescribe los recuentos, duques y usuarios de marquesas para invocar antes de a sudo
).
Luego, algunos magos hicieron un hechizo para proteger a init (del Libro de man 2 init
)
Las únicas señales que pueden enviarse al ID de proceso 1, el proceso init, son aquellas para las que init ha instalado explícitamente manejadores de señal. Esto se hace para asegurar que el sistema no se caiga accidentalmente.
(Nuestros espías informan [ U1 ] que init se encargará de 1 HUP 6 ABRT 11 SEGV 15 TERM 30 PWR 2 INT 10 USR1 14 ALRM 17 CHLD 32)
Entonces el buen usuario root de Lord aprenderá las noticias y cambiará el comando kill -ABRT 1
o kill -SEGV 1
eso generalmente genera un kernel panic y un volcado de núcleos.
Funciona porque init es el primer proceso que se ejecuta y toma el número PID 1 [ 2b ] .
Esto es inseguro, imprudente y sientes que es el heraldo de un mal augurio y una maldición, pero si no puedes materializar las manos y desconectarlo ...
La maldición : no escribirá en el registro, no matará todos los procesos y esperará su finalización, no escribirá en el HDD actualizando correctamente los inodes ni desmontará los sistemas de archivos; ni siquiera se preocupe, guardará las opciones de las ventanas gráficas y los historiales de shell, y muchos otros más allá de nuestra imaginación ... como dijimos un equivalente cercano a desconectar el cable de alimentación o la batería de una computadora portátil.
La forma correcta
"Non nobis, Domine, non nobis, sed nomini tuo da gloriam", lema de los caballeros templarios.
La forma legal (correcta) es usar shutdown
[ 3 ]
sudo shutdown -h now
shutdown se encarga de que el sistema se desactive de manera segura. Todos los usuarios registrados reciben una notificación de que el sistema se está cayendo y ...
pero con -h now
ellos no tendrán tiempo suficiente para hacer tanto ...
Algunas palabras más , también conocido como La historia, Capítulo II
Érase una vez algunos pasos lógicos que se sintieron desde el cielo sobre la gente de Unix:
Una vez que se han eliminado los procesos del sistema y se han desmontado los sistemas de archivos, el sistema se detiene / apaga o se reinicia automáticamente. Esto se realiza mediante el comando detener o reiniciar, que sincroniza los cambios en los discos y luego realiza la detención / apagado real o el reinicio. [ 4 ]
De hecho, hoy en día, no confiamos más en la existencia de las tres Moiras [ 5 ] del mundo de Linux , reboot
, poweroff
y halt
[ 6 ] : la ciencia moderna de ls -l $(which poweroff halt reboot)
y el de man reboot
los diferenciales nueva luz sobre esta era oscura y nos revelan que existe un solo comando verdadero que analiza todas sus opciones para que finalmente podamos pedir acciones que contradigan los nombres de sus comandos. ( halt -p
o reboot -p
para poweroff
, shutdown -r
para reboot
...)
Ahora que todo parecía ser claro y acogedor para todos, los rumores afirman [ 7 ] que en el inframundo del conjunto de herramientas systemd [ 8 ] se llevó a cabo una revolución que desconoce todo el mundo . Gracias a un ejército de cuñas de compatibilidad con versiones anteriores , no notamos en absoluto que reiniciar, apagar, detener [ 6 ] e incluso telinit [ 9 ] y apagar [ 3 ] ya están vinculados al nuevo rey systemctl [ 10 ]. Escucha toda la historia de la voz original de JdeBP The Bard [ 9 ] porque no tengo más aliento.
Si eres un seguidor del culto de Ubuntu, aún puedes estar consciente por un tiempo de todas esas afirmaciones [ 11 ] .
El medio de la Tierra halt -f
, init
, telinit
, systemctl
Búsqueda para la solución más rápida que la correcta, pero del mismo modo inteligente.
systemctl --force --force poweroff # the most close to kill -9 1
systemctl --force poweroff # rough but still safe
sudo halt -f # rough
sudo telinit 0 # or 6 # safe
kill -SIGINT 1 # cause reboot as the reboot command
kill -SIGRTMIN+4 1 # cause shutdown as the halt command
Si está bajo systemd o no, debería poder detener la computadora sin invocar todos los procedimientos correctos de shudown (y más rápido):
halt -f
: especificando la opción-f
(tenga en cuenta que debe -f
evitar el procedimiento de apagado) con el comando anterior, con sudo poweroff -f
o tal vez incluso con sudo reboot -f -h
. De hecho, podemos leer man reboot
(y equivalentes) sobre la necesidad de especificar la opción -f
para evitar llamar al cierre:
Cuando se llama con --force o cuando está en el nivel de ejecución 0 o 6, esta herramienta invoca la llamada al sistema reboot (2) (con el argumento REBOOTCOMMAND aprobado) y reinicia directamente el sistema .
De lo contrario, esto simplemente invoca la herramienta shutdown (8) con los argumentos apropiados sin pasar el argumento REBOOTCOMMAND.
-f, --force
No invoca shutdown (8) y en su lugar realiza la acción real que esperaría del nombre .
Además, puede usar telinit
[ 2b ] (o init
directamente)
sudo telinit 0 # or 6
decirle a init que cambie el nivel de ejecución ... pero si es así, ¿por qué no matarlo directamente?
En systemd puede usar la opción doble imprudente --force --force
systemctl --force --force poweroff
Lectura del manual systemctl [ 10 ]
-f, --force
Cuando se usa con enable, sobrescribe los enlaces simbólicos en conflicto existentes.
Cuando se utiliza con halt
, poweroff
,reboot
o kexec, ejecute la operación seleccionada sin necesidad de apagar todas las unidades. Sin embargo, todos los procesos se eliminarán por la fuerza y todos los sistemas de archivos se desmontarán o volverán a montar de solo lectura. Por lo tanto, esta es una opción drástica pero relativamente segura para solicitar un reinicio inmediato. Si --force se especifica dos veces para estas operaciones, se ejecutarán inmediatamente sin finalizar ningún proceso ni desmontar ningún sistema de archivos. Advertencia: la especificación de --force dos veces con cualquiera de estas operaciones puede provocar la pérdida de datos.
Ps> Inspírate sobre las variantes de la cola JdeBP The Bard [ 7 ] .