在python中列出正在运行的作业

ssb*_*ssb 1 python linux shell

如何在python中获取正在运行的作业列表.即.我基本上希望jobs在字符串或列表或集合中输出命令.

我正在尝试

 p1 = subprocess.Popen(['jobs'], shell=True, stdout=subprocess.PIPE)
 n = p1.communicate()[0].strip()
Run Code Online (Sandbox Code Playgroud)

但这似乎并没有奏效

Ada*_*eld 6

你必须自己跟踪它.shell会跟踪其所有子进程作业,但您不是shell,因此您必须自己进行跟踪. jobs是一个Bash shell内置命令,而不是运行的实际可执行文件.当你这样做subprocess.Popen(['jobs'], shell=True),你就产生一个新的应,并要求它的工作,这当然是空的,因为它没有任何正在运行的作业一个新的外壳.

如果你无法跟踪自己正在运行的工作,那么你将面临更艰难的时期.在Linux上,您可以解析/proc并查找将您作为父级的所有进程.在Windows上,您可以使用诸如pywin32之的包装器或ctypes访问Win32 API 的模块来执行此类操作.