python– 如何通过os.system确定进程的pid

python– 如何通过os.system确定进程的pid,第1张

概述我想用程序启动几个子进程,即模块foo.py启动bar.py的几个实例.由于我有时必须手动终止进程,因此我需要进程id来执行kill命令.即使整个设置非常“脏”,如果通过os.system启动进程,是否有一个很好的pythonic方法来获取进程'pid?foo.py:import os import time os.system('python bar.py

我想用程序启动几个子进程,即模块foo.py启动bar.py的几个实例.

由于我有时必须手动终止进程,因此我需要进程ID来执行kill命令.

即使整个设置非常“脏”,如果通过os.system启动进程,是否有一个很好的pythonic方法来获取进程’pID?

foo.py:

import osimport timeos.system("python bar.py \"{0}\ &".format(str(argument)))time.sleep(3)pID = ???os.system("kill -9 {0}".format(pID))

bar.py:

import timeprint("bla")time.sleep(10) % within this time,the process should be killedprint("blubb")
最佳答案os.system返回退出代码.它不提供子进程的pID.

使用subprocess模块.

import subprocessimport timeargument = '...'proc = subprocess.Popen(['python','bar.py',argument],shell=True)time.sleep(3) # <-- There's no time.wait,but time.sleep.pID = proc.pID # <--- access `pID` attribute to get the pID of the child process.

要终止进程,可以使用terminate方法或kill.(无需使用外部kill程序)

proc.terminate()
总结

以上是内存溢出为你收集整理的python – 如何通过os.system确定进程的pid全部内容,希望文章能够帮你解决python – 如何通过os.system确定进程的pid所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1046975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存