[英]How can I execute a shell command in a child process in Python?
我需要使用多处理模块(而不是子进程,因为我需要使用管道)来将Shell命令作为新的子进程执行。 目前,我正在使用:
p = subprocess.Popen(subprocess_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=parent_env)
其中subprocess_command
是一个shell命令(它运行带有参数的Python脚本), parent_env
是当前环境,其环境变量(LD_PRELOAD)设置不同。 使用多处理模块相当于什么? 子进程(Python脚本)需要能够通过管道返回到父进程。
这将演示如何从Popen返回流输出
file1.py
import time,os
while True:
print "OK ?"+os.environ["LD_PRELOAD"]
time.sleep(1)
file2.py
import os
os.environ["LD_PRELOAD"] = "5"
p = subprocess.Popen(subprocess_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=os.environ)
p.start()
for line in iter(p.stdout.readline, b''):
print line
time.sleep(0.6)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.