我想从Python脚本中运行一个程序,并获取我启动的进程的PID。我试过:
p=subprocess.Popen(nameofmyprocess) pid=p.pid
但问题是它不会等待我调用的程序完成。当我查看文档时,我得出结论应该使用subprocess.run()
,但是它没有类似.pid
的Popen
还有其他选择吗
编辑:
我应该在原来的问题中提到这一点。我的程序的代码包括一个服务器部分,它在其中打开一个套接字并侦听它。我有一个客户端连接到该套接字并发送消息。我的最终目标是编写一个脚本来运行我的程序,获取它的PID以将它传递给我编写的一些函数,这些函数将监视我的程序:它们将向我显示我的程序的内存使用情况、它打开的套接字以及文件描述符。。基本上是关于我的程序所做的事情的信息。
正如建议的那样,我使用了subprocess.Popen.poll
,因此现在我的代码如下所示:
p=subprocess.Popen(nameofmyprocess)
pid=p.pid
print pid
while (p.poll() is None):
time.sleep(20)
myFunc(pid)
myFunc2(pid)
但是,当我运行此脚本并运行客户端时,它无法连接到服务器程序。上面写着“连接失败”。我很确定程序正在运行,因为当我在另一个终端上使用命令ps aux
时,会显示我打印的PID
目前没有回答
相关问题 更多 >
编程相关推荐