Siempre dudo mucho en ejecutar kill -9 , pero veo que otros administradores lo hacen casi de forma rutinaria.
Me imagino que probablemente haya un término medio sensato, así que:
- Cuándo y por qué debería
kill -9¿ser usado? ¿Cuándo y por qué no? - ¿Qué se debe probar antes de hacerlo?
- ¿Qué tipo de depuración de un proceso "colgado" podría causar más problemas?
Respuesta aceptada:
Generalmente, deberías usar kill (abreviatura de kill -s TERM , o en la mayoría de los sistemas kill -15 ) antes de kill -9 (kill -s KILL ) para darle al proceso de destino la oportunidad de limpiar después de sí mismo. (Los procesos no pueden capturar o ignorar SIGKILL , pero pueden capturar SIGTERM, y a menudo lo hacen. .) Si no le da al proceso la oportunidad de terminar lo que está haciendo y limpiar, puede dejar archivos dañados (u otro estado) que no podrá entender una vez que se reinicie.
strace /truss , ltrace y gdb son generalmente buenas ideas para ver por qué un proceso atascado está atascado. (truss -u en Solaris es particularmente útil; Encuentro ltrace con demasiada frecuencia presenta argumentos para las llamadas a la biblioteca en un formato inutilizable). Solaris también tiene /proc útiles -herramientas basadas, algunas de las cuales se han portado a Linux. (pstack suele ser útil).