Los procesos de eliminación no son fáciles: los datos se pueden perder, las aplicaciones mal diseñadas pueden romperse de manera sutil que no se pueden solucionar sin una reinstalación ... pero depende completamente de saber qué es y qué no es seguro en un situación dada y lo que estaría en riesgo. El usuario debe tener una idea de lo que está haciendo o debe hacer un proceso y cuáles son sus limitaciones (disco IOPS, rss / swap) y poder estimar cuánto tiempo debería llevar un proceso de larga duración (digamos una copia de archivo, reencodificación de mp3, migración de correo electrónico, copia de seguridad, [su enlace de tiempo favorito aquí].)
Además, enviar SIGKILL
a un pid no es garantía de matarlo. Si está atascado en una llamada al sistema o ya está zombie ( Z
in ps
), puede continuar siendo zombie. Este suele ser el caso de ^ Z un proceso de larga ejecución y olvidarse bg
antes de intentarlo kill -9
. Un simple fg
volverá a conectar stdin / stdout y probablemente desbloqueará el proceso, generalmente seguido de la finalización del proceso. Si está atascado en otro lugar o en alguna otra forma de punto muerto del kernel, solo un reinicio puede eliminar el proceso. (Los procesos de Zombie ya están inactivos después SIGKILL
de que el núcleo procesa (no se ejecutará más código de usuario), generalmente hay una razón del núcleo (similar a estar "bloqueado" esperando que finalice una llamada al sistema) para que el proceso no finalice).
Además, si desea eliminar un proceso y todos sus elementos secundarios, adquiera el hábito de llamar kill
con el PID negado, no solo el PID en sí . No hay ninguna garantía de SIGHUP
, SIGPIPE
o SIGINT
u otras señales de limpiar después de ella, y tener un montón de procesos repudiado a la limpieza (recuerde mestizo?) Es molesto.
Bonus evil: kill -9 -1
es un poco más dañino que kill -9 1
(No hagas ninguno de los dos como root a menos que quieras ver lo que sucede en un VM descartable y no importante)