web-dev-qa-db-fra.com

Comment tuer une gamme de processus consécutifs sous Linux?

Je travaille sur un serveur Ubuntu multi-utilisateurs et j'ai besoin d'exécuter le multi-traitement python. Parfois, je dois tuer certains de ces processus. Par exemple,

$ ps -eo pid,comm,cmd,start,etime | grep .py
3457 python          python process_to_kill.py - 20:57:28    01:44:09
3458 python          python process_to_kill.py - 20:57:28    01:44:09
3459 python          python process_to_kill.py - 20:57:28    01:44:09
3460 python          python process_to_kill.py - 20:57:28    01:44:09
3461 python          python process_to_kill.py - 20:57:28    01:44:09
3462 python          python process_to_kill.py - 20:57:28    01:44:09
3463 python          python process_to_kill.py - 20:57:28    01:44:09
3464 python          python process_to_kill.py - 20:57:28    01:44:09
13465 python         python process_not_to_kill.py - 08:57:28    13:44:09
13466 python         python process_not_to_kill.py - 08:57:28    13:44:09

les processus 3457-3464 doivent être supprimés. Jusqu'à présent, je ne peux que faire

$ kill 3457 3458 3459 3460 3461 3462 3463 3464

Existe-t-il une commande comme $ kill 3457-3464 pour que je puisse spécifier les processus de début et de fin et tuer tous ceux dans la plage?

9
Xiaofeng Fan

Utilisez la syntaxe d'extension d'accolade du shell:

$ kill {3457..3464}

qui s'étend à:

$ kill 3457 3458 3459 3460 3461 3462 3463 3464

Ou vous pouvez tuer les processus par leur nom avec pkill. Par exemple:

$ pkill -f process_to_kill.py
18
John Kugelman