我怎样才能从 bash 中终止除一个 python 脚本之外的所有 python 进程。(我知道它的名字,但是它的 pid 有时可能会更改)。
我需要一种pkill -f "python"
但不包括 python 特定的脚本。
请指教。
答案1
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
该命令,我建议您不要担心不能立即理解它。第一次使用时可能会觉得相当棘手。我发布了一个非常简单的用法示例,您可以谷歌搜索更多。