【问题标题】:Get process id of the command of the command just after execution获取刚执行完的命令的命令的进程id
【发布时间】:2019-09-24 10:29:26
【问题描述】:

我需要通过 python 在 Linux 中执行几个命令,并将命令的过程存储在数据库中,以便在需要时将其终止。对于每个命令,我都应该获取进程 ID,并在需要时将其放入数据库。

我试过command & echo$! 这将在输出中返回进程ID。我必须解析输出并获取进程 ID。我需要知道运行命令后是否有任何简单的方法可以获取进程 ID?

上述命令的输出将

[1] 7543745

command output
-
-
-
-
-
-
-
-
-
-

【问题讨论】:

  • 能不能把上面运行程序的输出加进去,看看是怎么解析的。
  • 问题中添加的输出

标签: python linux bash shell command


【解决方案1】:

在 python 中使用 subprocess 模块:

import subprocess
p = subprocess.Popen('grep')
print(p.pid)

【讨论】:

  • 嗨,subprocess.Popen("n2disk -o .") 没有给出这样的文件或目录 'n2disk -o .' . “Popen”会接受什么?
  • Popen 需要一个包含命令和选项的列表,例如subprocess.Popen("ls -l".split())
  • 知道了。谢谢
【解决方案2】:

尝试下面的代码按名称查找进程 ID:

import os

process_name = 'Jupyter'
os.system('pgrep -fl {}'.format(process_name))

【讨论】:

    猜你喜欢
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 2012-10-28
    • 2021-11-07
    相关资源
    最近更新 更多