首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Python Popen和线程函数在后台运行mvn

通过Python Popen和线程函数在后台运行mvn
EN

Stack Overflow用户
提问于 2017-07-06 07:13:39
回答 1查看 84关注 0票数 0

我正在使用Py4j module.The实现网关服务器自动化每次用户调用function.The时都需要启动网关服务器,我面临的问题是我无法在后台运行该功能。代码如下:

代码语言:javascript
复制
def mvn():
logger = open("log.txt", 'w')
logger.seek(0)
thread1 = Thread(target=Popen, args=("./runJVM.sh"),kwargs=
                {"stdout":logger})
thread1.daemon = True
thread1.start()
# stdout, error = proc.communicate()
# logger.write(stdout)
logger.close()

这里有两个问题:1)如果我将kwargs stdout指定给logger (一个用来检查输出的日志文件),它会抛出一个错误,告诉我stdout指定了多个参数。

2)如果我不指定stdout选项,线程的输出将显示在ipython终端上,而这不是我想要的。

我想要的就是在后台调用服务器,这样其他函数就可以访问java网关服务器,并从可以在ipython中使用的方法中访问方法。

您可以放心地假设,当直接通过终端运行时,mvn函数工作正常。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-07-08 01:19:59

我找到了这个问题的答案。

我已经创建了一个线程,它将接受Popen命令,接受一个小的shell脚本作为输入,并将stdout参数作为kwargs传递,这样就不会显示输出。服务器已被调用,并且可以从其他函数中使用。

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44937395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档