一段代码,备忘
import subprocess
import osimport threading
def on_exit():
print("process is dead")
def monitor(process1,onexit):
print("process id %s waiting"% (process1.pid))
process1.wait()
onexit()
command=['mplayer']+["/home/aphero/1.mp4"]
process = subprocess.Popen(command,stdout=subprocess.PIPE, preexec_fn=os.setsid)
process_monitor = threading.Thread(target=monitor, args=(process, on_exit))
process_monitor.start()
print("test poll")
ret=process.poll()
while ret is None:
returncode=process.stdout.read(512)#实时读取返回数据
print(returncode)
ret=process.poll()
print("end")
本文介绍了一个使用Python监控子进程的示例。该示例利用subprocess模块启动了一个mplayer进程来播放视频,并通过threading模块创建了一个独立的监控线程来等待子进程结束并执行相应的回调函数。此外,还演示了如何读取子进程的标准输出。

97

被折叠的 条评论
为什么被折叠?



