如果有多个 python 程序在运行,我如何确定我的 python 程序的 PID?

use*_*931 5 linux bash python pid

我的系统上运行了两个 python 程序,它们被称为 programx和 program y

我想获得 program 的 pid y,但不是x我的 bash 脚本。使用时pgrep python,我得到了他们两个的pid,不知道哪个是哪个。

任何想法如何在 bash 脚本中区分两者之间的区别?

Kar*_* S. 7

-f您可以使用switch to来匹配参数列表pgrep(尝试man pgrep阅读更多内容)。

pgrep -f x
Run Code Online (Sandbox Code Playgroud)

应该只产生程序x

pgrep -f y
Run Code Online (Sandbox Code Playgroud)

分别是唯一的程序y

作为替代方案,如果xy不够唯一并且以太多行结尾,您可以使用psgrep来获得更多选项

ps ax | grep 'python x' | grep -v grep | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

这会

  • 列出所有相关进程
  • grep 查找python x其中包含的内容。在这里您可能需要添加路径说明符,例如python ./path/to/x
  • 从匹配进程列表中删除 grep 命令本身
  • 仅打印第一列,即 pid。