#1 Le 12/11/2022, à 12:21
- fred-cavernedufond
[RESOLU] Script pour automatiser une tache suite processus "zombie"
Bonjour,
Ne sachant pas programmer, quelqu'un aurait-il une idée pour automatiser les deux lignes de commandes suivantes servant à rechercher et "tuer" des processus zombies qui s'affichent régulièrement dans mon laptop ? (jamais trouvé la solution - cf ce forum)
$ ps axo stat,ppid,pid,comm | grep -w defunct
$ sudo kill -9 n°du processus zombie
A chaque fois je fais le copié-collé des lignes de commande dans le terminal, c'est un peu pénible ; un script qui se lancerait via un simple raccourcis clavier serait le top !
Merci
Fred
Dernière modification par fred-cavernedufond (Le 15/11/2022, à 23:29)
Fred
Ubuntu 22.04 LTS
Hors ligne
#2 Le 12/11/2022, à 12:36
- Sciensous
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
conseil: si tu ne trouves pas sur le forum, il y a le man
je te propose les commandes suivantes à mettre dans un script:
pid="$(ps axo pid,stat,pid,comm | grep -w defunct|cut -d' ' -f1)";
[ "$pid" ] && sudo kill $pid
et ensuite affecter une combinaison de touches qui lancera ce script
Dernière modification par Sciensous (Le 12/11/2022, à 12:37)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#3 Le 12/11/2022, à 12:45
- bruno
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Bonjour,
Par curiosité, quel est l'interêt de faire cela ?
#4 Le 12/11/2022, à 13:05
- matrix-bx
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
conseil: si tu ne trouves pas sur le forum, il y a le man
je te propose les commandes suivantes à mettre dans un script:
pid="$(ps axo pid,stat,pid,comm | grep -w defunct|cut -d' ' -f1)"; [ "$pid" ] && sudo kill $pid
et ensuite affecter une combinaison de touches qui lancera ce script
Je ferais avec "awk" plutôt que "cut".
matrix-bx@laptop:~$ ps axo pid,stat,pid,comm | grep -w defunct
2735 Zs 2735 bash <defunct>
matrix-bx@laptop:~$ ps axo pid,stat,pid,comm | grep -w defunct|cut -d' ' -f1
matrix-bx@laptop:~$ ps axo pid,stat,pid,comm | grep -w defunct | awk '{print $1}'
2735
matrix-bx@laptop:~$
Mais je doute qu'on puisse "tuer" un processus zombie, par définition il ne répond plus (par contre en tuant le processus parent, ça fonctionne chez moi).
Utilisations des balises de mises en formes.
Hors ligne
#5 Le 12/11/2022, à 13:12
- bruno
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
@matrix-bx, c'est bien ce que fait le script proposé : tuer le processus parent (à condition de corriger la faute de frappe sur ppid) :
[pid="$(ps axo ppid,stat,pid,comm | grep -w defunct|cut -d' ' -f1)";
[ "$pid" ] && sudo kill $pid
Ceci dit je ne vois toujours pas l'utilité de tuer des processus zombie.
#6 Le 12/11/2022, à 13:17
- matrix-bx
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
La ligne de résultat commençant par plusieurs espaces, la commande "cut" ne marche pas contrairement à "awk" (j'ai essayé, voir au dessus).
Utilisations des balises de mises en formes.
Hors ligne
#7 Le 12/11/2022, à 13:34
- nany
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Bonjour,
Bon, allez, j’y vais aussi de mon petit commentaire.
Je ferais avec "awk" plutôt que "cut".
Quitte à utiliser awk, autant en profiter pour supprimer le pipe grep :
ps axo ppid,stat,pid,comm | awk '/defunct/{print $1}'
(Dans le doute, j’ai conservé stat et pid.)
(Je n’ai pas testé car pas de zombie.)
Et du coup pourquoi ne pas faire une seule ligne de commandes plutôt qu’un script ?
ps axo ppid,stat,pid,comm | awk '/defunct/{print $1}' | xargs -r sudo kill -9
Ceci dit je ne vois toujours pas l'utilité de tuer des processus zombie.
+1
Hors ligne
#8 Le 12/11/2022, à 14:25
- matrix-bx
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Bonjour,
Bon, allez, j’y vais aussi de mon petit commentaire.matrix-bx a écrit :Je ferais avec "awk" plutôt que "cut".
Quitte à utiliser awk, autant en profiter pour supprimer le pipe grep :
ps axo ppid,stat,pid,comm | awk '/defunct/{print $1}'
(Dans le doute, j’ai conservé stat et pid.)
(Je n’ai pas testé car pas de zombie.)Et du coup pourquoi ne pas faire une seule ligne de commandes plutôt qu’un script ?
ps axo ppid,stat,pid,comm | awk '/defunct/{print $1}' | xargs -r sudo kill -9
Bonne remarque !
Et du coup on peut aussi enlever "stat" et "pid" du "ps" puisqu'on en fait rien.
Une observation, tuer le parent n'est pas sans effets "regrettables" potentiels.
Utilisations des balises de mises en formes.
Hors ligne
#9 Le 12/11/2022, à 14:31
- fred-cavernedufond
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Merci pour vos réponses. C'est bien le processus "parent" qu'on vise a supprimer...
Il faut que j'étudie comment faire un script sous linux (vu la doc plus haut). Je connais le principe du batch...
Fred
Ubuntu 22.04 LTS
Hors ligne
#10 Le 12/11/2022, à 14:42
- fred-cavernedufond
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Ceci dit je ne vois toujours pas l'utilité de tuer des processus zombie.
...les processus s'accumulent en mémoire RAM et la monopolisent inutilement ; sur une config classique d'un ordi portable, ça finit par le ralentir. La solution serait que ma bécane ne génère pas de "zombi" ou tout au moins, les supprime après un boot mais il en reste toujours quelqu'un. Je n'ai jamais compris pourquoi il me les crée : ça semble lié à la création ou déplacement d'icones de fichiers sur le bureau (?) J'ai exactement le meme ubuntu 20 LTS sur l'ordi de bureau mais avec moins de RAM et je n'ai pas ce problème. La gestion de la RAM dans ce portable se fait en partie avec Zram...pas impossible qu'il en soit la cause mais c'est un autre sujet...
Fred
Dernière modification par fred-cavernedufond (Le 12/11/2022, à 14:43)
Fred
Ubuntu 22.04 LTS
Hors ligne
#11 Le 12/11/2022, à 14:48
- fred-cavernedufond
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Et du coup pourquoi ne pas faire une seule ligne de commandes plutôt qu’un script ?
...parce que je suis un gros fainéant !
Fred
Ubuntu 22.04 LTS
Hors ligne
#12 Le 12/11/2022, à 14:53
- Sciensous
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
je m'incline devant les poids lourds aidants (j'ai toujours du mal avec awk même si je l'utilise occasionnellement)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#13 Le 12/11/2022, à 15:30
- Watael
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
CODES D'ÉTAT DE PROCESSUS Voici les différentes valeurs que les indicateurs de sortie s, stat et state[...] Z processus zombie (<defunct>), terminé mais pas détruit par son parent.
il arrive que ps affiche defunct, ou affichera-t-il plutôt Z dans la colonne d'état ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#15 Le 12/11/2022, à 16:17
- Watael
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
d'accord.
$ ps haxo ppid,stat | awk '$2~"Z"&&$1>0{ppid[$1]++}END{for(i in ppid)print i}'
?
ceci affiche le PID parent s'il est supérieur à 0 et que la colonne STATUS contient Z (zombie).
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#16 Le 12/11/2022, à 16:42
- bruno
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
bruno a écrit :Ceci dit je ne vois toujours pas l'utilité de tuer des processus zombie.
...les processus s'accumulent en mémoire RAM et la monopolisent inutilement ; sur une config classique d'un ordi portable, ça finit par le ralentir.
Un processus zombie ne consomme aucune ressource, ni CPU, ni mémoire puisque c'est « un processus terminé mais non détruit par son parent ».
Dernière modification par bruno (Le 12/11/2022, à 16:43)
#17 Le 12/11/2022, à 21:16
- Tawal
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Hello,
@Watael : pourquoi passer par un tableau et ne pas afficher à la volée :
ps haxo ppid,stat | awk '$2~"Z"&&$1>0{print $1}'
?
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#18 Le 12/11/2022, à 21:30
- nany
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
nany a écrit :Et du coup pourquoi ne pas faire une seule ligne de commandes plutôt qu’un script ?
...parce que je suis un gros fainéant !
Hors ligne
#19 Le 12/11/2022, à 21:53
- Watael
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
pourquoi passer par un tableau et ne pas afficher à la volée
pour assurer l'unicité des PPID.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#20 Le 13/11/2022, à 00:09
- geole
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Bonsoir.
S'il y a des zombies, comme tu sais identifier le process ´créateur', cesse de l'utiliser tant qu'il n'est pas au point.
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#21 Le 14/11/2022, à 16:51
- fred-cavernedufond
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Bonsoir.
S'il y a des zombies, comme tu sais identifier le process ´créateur', cesse de l'utiliser tant qu'il n'est pas au point.
Bonjour Géole,
Comme je l'ai dit, je n'ai aucune idée du process qui crée les zombies ; le bug semble lié au copiés-collés-effacement de fichiers dans Nautilus. Je précise que je travaille avec un disque SSD ; que les numéros des process parents sont toujours différents mais que je n'ai aucun problème de "freezing", l'ordi est "fluide". Je soupçonne un mauvais effacement lecture/écriture en RAM ou un truc du genre...Il faudrait faire des recherches sur mon système mais je n'ai pas le temps actuellement.
En tout cas, merci à tous pour les scripts : ça fonctionne Je ne peux pas prendre part aux commentaires car je ne maîtrise pas encore la ligne de commande.
Fred
Dernière modification par fred-cavernedufond (Le 14/11/2022, à 16:58)
Fred
Ubuntu 22.04 LTS
Hors ligne
#22 Le 14/11/2022, à 17:07
- fred-cavernedufond
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
exact ! Quand on veut, on peut...et quand on peut, on doit il faut tester et apprendre, le tout est de trouver la méthode qui apportera le minimum d'effort pour le maximum de résultat probant. ...je l'ai dit "je suis un gros fainéant"
Fred
Dernière modification par fred-cavernedufond (Le 14/11/2022, à 17:08)
Fred
Ubuntu 22.04 LTS
Hors ligne
#23 Le 15/11/2022, à 09:42
- fred-cavernedufond
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Bonjour,
J'ai crée un raccourcis-clavier avec cette commande mais visiblement il ne se passe rien. Aurais-je oublié un truc ?
ps axo ppid,stat,pid,comm | awk '/defunct/{print $1}' | xargs -r sudo kill -9
Fred
Dernière modification par fred-cavernedufond (Le 15/11/2022, à 09:43)
Fred
Ubuntu 22.04 LTS
Hors ligne
#24 Le 15/11/2022, à 09:52
- Tawal
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
Hello,
Comme l'a souligné Watael, si 2 zombies ont le même parent alors la commande va essayer de tuer 2 fois le même parent.
La 1ère fois, cela va fonctionner, mais retournera une erreur à la seconde fois.
Pour éviter cela, utilise la commande que Watael a donné (qui assure l'unicité des ppid) :
ps haxo ppid,stat | awk '$2~"Z"&&$1>0{ppid[$1]++}END{for(i in ppid)print i}' | xargs -r sudo kill -9
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#25 Le 15/11/2022, à 09:52
- Watael
Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"
en ligne de commande, sudo te demande ton mot de passe ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne