La commande PS possède une multitude d’options et un affiche un grand nombre d’éléments. On ne va pas tous les passés en revue rassurez vous. Aujourd’hui, je vous propose un moyen simple de lister les process non killable. C’est ultra simple car il suffit de lire la colonne status de PS.
Cette colonne contient généralement une ou deux lettres :
- R : en cours
- S : interrompable
- s : c’est une session maitre
- l : multi-threadé
- < : priorité haute
- + : processus d’arrière plan
- D : non killable
C’est se dernier cas qui peut être plus gênant car ce process ne peut être arrêté. Et pour lister les processus en fonction d’un statut c’est awk :
ps aux | awk '{if ($8 ~ "D") print $0}'
Pour le stopper ce n’est pas simple car un kill -9 du pid ne marchera pas. On peut éventuellement tenter un reboot forcé :
reboot -n -f
C’est un peu moche c’est clair. J’imagine qu’avec un lsof on peut aussi identifié le filesystem utilisé et le démonté. C’est pas beaucoup plus jolie.
Plus d’infos sur le site noah.org et bien sûr la man page de PS