在linux中,我有一个可执行文件,应该像这样运行: ./a.exe inputdata
我想在我的python脚本中启动这个可执行文件,但我不想阻止其余的python代码。
我试过这样的东西,但是
# launch sensor node
def launchA():
subprocess.Popen(["Path/a.exe", inputdata])
if __name__ == '__main__':
p = multiprocessing.Process(target=launchA,args=())
p.start()
print("sensorlaunched")
但是,luanchA进程仍会阻止打印功能。
我的代码出了什么问题?谢谢!
答案 0 :(得分:3)
您所做的是纯粹的过度杀伤:您正在使用multiprocessing
创建一个流程来管理使用subprocess
创建的流程。只需单独使用subprocess
:
p = subprocess.Popen(["Path/a.exe", inputdata])
现在p
是一个引用正在运行的a.exe
进程的句柄,您的脚本可以继续执行它正在执行的操作。