3 votes

Impossible de terminer le processus par kill -9

Je suis incapable de terminer le processus en utilisant le signal SIGKILL.

$ ps aux | grep -i phps
username 17564   0.0  0.0        0      0   ??  ?E   Sun09AM   0:00.00 (phpstorm)
username 27664   0.0  0.0  2442020    788 s000  S+   11:53AM   0:00.00 grep -i phps
$ sudo kill -9 17564
$ ps aux | grep -i phps
username 17564   0.0  0.0        0      0   ??  ?E   Sun09AM   0:00.00 (phpstorm)
username 27883   0.0  0.0  2423392    312 s000  R+   11:55AM   0:00.00 grep -i phps

Que signifie le processus entre parenthèses? Comment le tuer?

1 votes

@patrix - pas tout à fait un doublon - l'autre question ne montre pas la sortie ps incluant () - donc cela pourrait ne pas être la même chose. Ici, la solution est de tuer le processus qui a appelé phpstorm

1 votes

@Mark à droite, je n'avais pas remarqué cela. Merci.

6voto

yoliho Points 340

Je suppose que vous essayez de tuer pis 17564 en utilisant kill -9 17564

Cependant, il est déjà mort, comme indiqué par son nom entre parenthèses dans la sortie ps. (J'ai appris que c'était un processus zombie mais cela semble incorrect mais la solution est la même) Il disparaîtra lorsque le processus qui l'a lancé lira son code de sortie.

La page de manuel de ps indique que l'état E signifie que le processus essaie de quitter. La commande indiquée est en fait le mot-clé ucomm (comptabilité) car le système ne peut pas trouver les arguments réels.

Pour supprimer le processus, le processus appelant doit lire son code de sortie, cependant il y a probablement eu une défaillance et il ne fera pas cela, donc vous devez tuer le processus parent.

ps -ajx affichera le statut et le processus parent - notez qu'Apple/BSD a changé les paramètres de ps dans Tiger et ps -aux ne fonctionne pas, ps aux est vu comme une astuce car c'est ce que tout le monde utilise. Vous devez donc lire la page de manuel.

1 votes

Merci pour cette explication détaillée. Cela aide. ps -ajx affiche l'identifiant du parent (PPID) dans la troisième rangée. et ps -ajx -p PID affichera l'état exact du processus. Merci encore.

1 votes

Mise à jour. J'ai pu reproduire le problème une fois de plus. Premièrement. Vous devriez éviter l'argument -a si vous spécifiez -p. Car cela affichera toujours tous les processus. Deuxièmement. ` $ ps -p 542 -jx UTILISATEUR PID PPID PGID SESS JOBC STAT TT TIME COMMANDE nom_utilisateur 542 1 542 0 1 ?E ?? 0:00.00 (phpstorm) ` Il semble que le parent soit /sbin/launchd. Et le redémarrer revient presque à redémarrer le système.

2voto

skwdenyer Points 11

Venant de rencontrer ce problème avec WhatsApp Desktop, il semble que ce soit crashpad_handler qui était bloqué.

ps alx | egrep '[ /](PID|What)' (What étant une partie du nom du processus) a renvoyé 2 entrées : le processus bloqué et le crashpad_handler pour ce processus.

kill -9 PID du gestionnaire de crash a résolu le problème dans mon cas. Bien sûr, cela peut varier d'une situation à l'autre :)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X