Vždy velmi váhám se spuštěním kill -9 , ale vidím, že ostatní administrátoři to dělají téměř běžně.
Domnívám se, že pravděpodobně existuje rozumná střední cesta, takže:
- Kdy a proč by měl
kill -9být použit? Kdy a proč ne? - Co byste měli vyzkoušet, než to uděláte?
- Jaký druh ladění „zaseknutého“ procesu by mohl způsobit další problémy?
Přijatá odpověď:
Obecně byste měli použít kill (zkratka pro kill -s TERM , nebo na většině systémů kill -15 ) před kill -9 (kill -s KILL ), aby měl cílový proces možnost po sobě uklidit. (Procesy nemohou zachytit ani ignorovat SIGKILL , ale mohou a často chytí SIGTERM .) Pokud procesu nedáte šanci dokončit to, co dělá, a vyčistit, může zanechat poškozené soubory (nebo jiný stav), kterému po restartu nebude rozumět.
strace /truss , ltrace a gdb jsou obecně dobré nápady, jak zjistit, proč se zasekl proces. (truss -u na Solaris je zvláště užitečné; Nacházím ltrace příliš často předkládá argumenty volání knihovny v nepoužitelném formátu.) Solaris má také užitečné /proc -založené nástroje, z nichž některé byly portovány na Linux. (pstack je často užitečné).