web-dev-qa-db-fra.com

Pkill -f ne fonctionne pas pour la destruction de processus

J'ai ce processus en cours d'exécution:

342 pts/2    T    0:00 sh -c Sudo screen /usr/bin/python /usr/bin/btdownloadcurses "http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent" --display_interval 20 --saveas "/srv/"
343 pts/2    T    0:00 Sudo screen /usr/bin/python /usr/bin/btdownloadcurses http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent --display_interval 20 --saveas /srv/
344 pts/2    T    0:00 screen /usr/bin/python /usr/bin/btdownloadcurses http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent --display_interval 20 --saveas /srv/

J'ai essayé de courir:

pkill -f http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent

Mais le processus est toujours en cours.
Comment puis-je forcer la suppression des processus qui contiennent: " http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent "?


Question telle que modifiée ci-dessous:

ps ax | grep 'Momomoko.E01.140011.HDTV.H264.720p.mp4'

Je veux tuer tous les processus qui contiennent la chaîne ci-dessus.

J'ai essayé d'exécuter la ligne ci-dessus, et elle renvoie trois résultats:

  342 pts/2    T    0:00 sh -c Sudo screen /usr/bin/python /usr/bin/btdownloadcurses "http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent" --display_interval 20 --saveas "/srv/Momomoko.E01.140011.HDTV.H264.720p.mp4"
  343 pts/2    T    0:00 Sudo screen /usr/bin/python /usr/bin/btdownloadcurses http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent --display_interval 20 --saveas /srv/Momomoko.E01.140011.HDTV.H264.720p.mp4
  344 pts/2    T    0:00 screen /usr/bin/python /usr/bin/btdownloadcurses http://zoink.it/torrent/732A4A9B54B7E3A916C2835D936D985942F65A6D.torrent --display_interval 20 --saveas /srv/Momomoko.E01.140011.HDTV.H264.720p.mp4

Comment exécuter cette ligne:

ps ax | grep 'Momomoko.E01.140011.HDTV.H264.720p.mp4'

..avec php, et kill -9 tous les processus d'appariement?

14
Lim zhen xiang

Essayez d'utiliser plutôt la commande kill

kill -9 <pid>

Cela fonctionnera à coup sûr, car je l'ai essayé moi-même et très pratique à tout moment.

Utilisez ce qui suit dans un fichier de script, puis exécutez for loop avec la commande kill,

ps|grep torrent|cut -f1 -d' '

comme ceci pour la boucle comme indiqué ci-dessous, comme copie de travail exacte de mon système;

for p in `ps|grep torrent|cut -f1 -d' '`; do
   kill -9 $p
done

J'espère que cela vous aidera enfin.

15
Skynet

Comme vous pouvez le voir, le processus est exécuté avec la commande d'écran.

sh -c Sudo screen /usr/bin/python
Sudo screen /usr/bin/python
screen /usr/bin/python

Pour cette raison, vous ne pouvez pas kill le processus avec la commande que vous avez utilisé.

Pour tuer le processus, recherchez d'abord l'ID de processus PID du processus, puis utilisez la commande kill avec le PID. Comme

$ **kill -9 342**

En regardant également à partir de votre liste de processus, il est visible que vous avez démarré le même processus plusieurs fois avec différentes autorisations. Je vous suggère donc de tuer tous sauf un qui est nécessaire.

EDIT: Cette seule commande suffirait;

$ ps ax | grep 'Momomoko.E01.140011.HDTV.H264.720p.mp4' | awk -F ' ' '{print $1}' | xargs Sudo kill -9

Voici ce qu'il fait:

  1. ps ax: lister le processus
  2. grep: grep pour le nom du processus requis
  3. awk: pour obtenir uniquement les PID du processus à partir de la sortie grep
  4. xargs Sudo kill -9: xargs passera un à un numéro PID pour tuer la commande
8
Santosh A

Si ce processus zombie est ouvert dans un terminal, vous pouvez Ctrl+z it, qui sur la plupart des shells permet au processus de s'exécuter en arrière-plan et génère quelque chose comme:

[1]  + 69880 suspended  someprocess

Vous pouvez ensuite le tuer avec:

kill -9 69880

le même identifiant qui a été affiché lors de la suspension.

1
erandros