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

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

我的系统上运行着两个 python 程序,假设它们分别叫做 programx和 program y

我想获取程序的 pid y,但不x获取我的 bash 脚本的 pid。使用 时pgrep python,我获取了它们两个的 pid,但不知道哪个是哪个。

有什么想法我可以如何在 Bash 脚本中区分两者吗?

答案1

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

pgrep -f x

应该只产生程序x

pgrep -f y

分别仅程序y

另外,如果xy不够独特并且结尾行数太多,则可以使用psgrep以获得更多选项

ps ax | grep 'python x' | grep -v grep | awk '{print $1}'

这会

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

相关内容