Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

cool

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"

Sciensous a écrit :

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

cool

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.

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

 


bruno a écrit :

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"

nany a écrit :

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... smile


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"

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. 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"

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 ! big_smile


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"

tongue
je m'incline devant les poids lourds aidants (j'ai toujours du mal avec awk même si je l'utilise occasionnellement)
roll


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"

man ps a écrit :
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

#14 Le 12/11/2022, à 15:46

matrix-bx

Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"

Voir exemple concret au message #4


Utilisations des balises de mises en formes.

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"

fred-cavernedufond a écrit :
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"

fred-cavernedufond a écrit :
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 ! big_smile

L’un n’empêche pas l’autre.

Hors ligne

#19 Le 12/11/2022, à 21:53

Watael

Re : [RESOLU] Script pour automatiser une tache suite processus "zombie"

Tawal a écrit :

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"

geole a écrit :

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 smile 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 ! smile 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" wink
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