linux - 杀死除一个 python 脚本和 grep 进程之外的所有 python 脚本

标签 linux bash python-2.7 shell centos

我如何在 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/

相关文章:

mysql - 连续从linux中的FIFO管道将数据插入mysql表数据

python-2.7 - 让 Dedupe 从现有标签数据中学习

python - PyQt 从另一个类访问属性

python - 在 Windows 路径上使用 os.path.dirname

linux - 使用 xxd 将整数转换为二进制

c - 同步管道访问以进行两种方式的读/写

python - Python Flask:获取和发布方法的不同render_template可能吗?

ruby - Python 或 Ruby 用于 Linux 上的新应用程序?

bash - bash 中 "$*"有哪些用例?

linux - Bash 输出流写入文件