如何从bash中杀死除一个以外的所有python进程


11

我如何从bash中杀死除一个python脚本外的所有python进程。(我知道它的名字,但是它的pid有时可以更改)。

我需要一种,pkill -f "python"但要排除python特定的脚本。

请指教。

Answers:


13

ps aux |grep python |grep -v 'pattern_of_process_you_dont_want_to_kill' |awk '{print $2}' |xargs kill

更新:注释中要求的分步说明

  • ps aux |grep python-显示所有匹配python模式的过程
  • grep -v 'pattern_of_process_you_dont_want_to_kill' -排除您不想杀死的进程
  • awk '{print $2}' -显示输出的第二个字段,它是PID。
  • xargs kill-将kill命令应用于每个输入参数(PID)。

如果您不熟悉xargs命令,我建议您不要担心,如果您不立即理解它。第一次似乎很棘手。我发布了一个非常简单的用法示例,您可以在Google上获取更多信息。


1
很好,但是您能解释一下它是如何工作的,例如awk'{print $ 2}'和xargs kill是什么?
user370717 '16

awk '{print $2}' -打印输出的第二个字段ps,在当前情况下为PIDxargskill命令应用于每个PID
user1700494 '16

1
将其放在评论中很好,但是在将格式正确的评论整合到您的答案中之后,我宁愿投票给您答案。
小鸡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.