¿Puede root matar proceso init (el proceso con pid 1)? ¿Cuáles serían sus consecuencias?
Por defecto, no, eso no está permitido. Bajo Linux (desde man 2 kill
):
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 controladores de señal. Esto se hace para asegurar que el sistema no se caiga accidentalmente.
Pid 1 (init) puede decidir dejarse matar, en cuyo caso el "kill" es básicamente una solicitud para que se cierre. Esta es una forma posible de implementar el halt
comando, aunque no conozco ninguno init
que lo haga.
En una Mac, matar launchd
(su análogo de inicio) con la señal 15 (SIGTERM) reiniciará inmediatamente el sistema, sin molestarse en cerrar los programas en ejecución sin problemas. Matarlo con la señal inalcanzable 9 (SIGKILL) no hace nada, lo que demuestra que la kill()
semántica de Mac es la misma que la de Linux a este respecto.
Por el momento, no tengo una caja de Linux a mano con la que estoy dispuesto a experimentar, por lo que la pregunta de qué hace Linux Y con init
con un SIGTERM tendrá que esperar. init
proyectos de reemplazo como Upstart y Systemd siendo populares en estos días, la respuesta podría ser variable.
ACTUALIZACIÓN : En Linux, init
ignora explícitamente SIGTERM, por lo que no hace nada. @jsbillings tiene información sobre lo que hacen Upstart y Systemd.
init
con una señalSegmentation fault
(SIGSEGV
), lo que dará como resultado un pánico en el núcleo:kill -SEGV 1
El init SysV ignora las señales SIGKILL o SIGTERM. La única señal que causa un cambio de estado es SIGPWR, por lo que puedo decir, que programa un apagado relacionado con la energía.
Parece que Upstart y Systemd tampoco responden a SIGKILL, y de mi prueba, parece que un SIGTERM hace que upstart y systemd se vuelvan a ejecutar.
No estoy seguro de lo que los otros respondedores están ejecutando, pero estoy bastante seguro de que no puede matar -9 (SIGKILL) o kill -15 (SIGTERM) init (pid 1). Lo más probable es que si pudiera, obtendría un kernel panic porque init salió inesperadamente con un código de salida distinto de cero, que sería menos que ideal. No apaga la computadora ni hace que se reinicie.
fuente
Técnicamente sí, root puede emitir un SIGKILL a init. init, sin embargo, difiere de la mayoría, casi de hecho, de otros procesos en que se le permite atrapar e ignorar la señal.
Puede, libremente, matar a init emitiendo un
kill -TERM 1
que sería análogo a emitir unhalt
oshutdown
en ese init pasará la señal a todos los niños, esencialmente todos los demás procesos, antes de honrar la señal en sí.Tenga en cuenta: realizar este comando apagará su sistema.
Por sabor; Un tipo de otro proceso que puede "ignorar" un SIGKILL es uno en reposo ininterrumpido, como uno que espera E / S. Tal proceso podría encontrarse emitiendo un
ps axo stat,comm
proceso donde los procesos con un estado 'D' son ininterrumpibles.fuente
kill -TERM 1
no hará más que causa init para sí re-ejecutivo en la mayoría de los sistemas Linux, y que la única cosa que podría hacer para causar un sistema para apagar el sistema es ejecutarkill -PWR 1
kill -TERM 1
definitivamente provoca un reinicio (en realidad, revisando la::shutdown:
entrada y el script asociado en inittab).Puedes reiniciar el
init
proceso. Esto es útil para realizar cambiosinittab
sin tener que reiniciar.Fuente: http://www.cyberciti.biz/faq/linux-unix-kill-hup-1-reread-etcinittab-file/
fuente
init
Sé que esta señal no hace que el proceso se reinicie, sino solo para volver a cargar el/etc/inittab
archivo. ---systemctl daemon-reexec
Realmente lo contrariosystemd
(init
reemplazo en Linux) para volver a ejecutarsudo kill -INT 1
(interrupción) reiniciará el sistema ysudo kill -SEGV 1
(violación de segmentación) osudo kill -ABRT 1
(abortará) generará un kernel panic.nota: se requiere sudo.
fuente
Bueno, la raíz puede matar el proceso de inicio en Linux:
Detalles:
kill -9 1
no funcionaEntonces, corramos
strace
:fuente
SIGKILL
alPID1
puesto github.com/torvalds/linux/commit/... se fusionó.Escriba
sudo kill -INT 1
, luego vea lo que sucede.fuente