我如何在 bash 中运行命令来杀死所有 python 脚本,除了名为 test.py
的脚本和 grep 的 pid 本身,以防我们使用类似 ps -ef |grep
我想我可以使用类似 pgrep
python 的东西来忽略 grep 进程,但是我如何同时排除 test.py
脚本?我知道有一个选项可以执行 grep -v,是否有选项可以执行 pgrep -v
说明:除了 grep process- 意味着当我们执行例如 ps -ef |grep test1.py
时,我们还会得到用于产生此结果的 grep pid。我不想杀死它,因为在显示结果的阶段这个过程不再存在。
编辑:
我需要这个命令通过 python 的 subprocess
模块
有效
k = subprocess.Popen('[some_bash_cmd_here]',shell=True)
k.wait()
最佳答案
您可以使用 pgrep -fl python
获取所有与 python
匹配的命令,然后通过 awk
获取进程 ID从命令中排除 test.py
,最后将其通过管道传递给 xargs kill
:
pgrep -fl python | awk '!/test\.py/{print $1}' | xargs kill
关于linux - 杀死除一个 python 脚本和 grep 进程之外的所有 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39545994/