我正在努力从Python中执行shell脚本,到目前为止,它工作得很好。但我在一件事上卡住了。
在我的Unix机器上,我通过使用
&
在后台执行一条命令,像这样。这个命令将启动我的应用程序服务器
david@machineA:/opt/kml$ /opt/kml/bin/kml_http --config=/opt/kml/config/httpd.conf.dev &
现在我需要从我的Python脚本中执行同样的事情,但是当它执行我的命令时,它从未进入else block
,也从未打印出execute_steps::Successful
,它只是挂在那里。
proc = subprocess.Popen("/opt/kml/bin/kml_http --config=/opt/kml/config/httpd.conf.dev &", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, executable='/bin/bash')
if proc.returncode != 0:
logger.error("execute_steps::Errors while executing the shell script: %s" % stderr)
sleep(0.05) # delay for 50 ms
else:
logger.info("execute_steps::Successful: %s" % stdout)
我在这里做错了什么吗?我想在后台执行shell脚本后打印出execute_steps::Successful
。
所有其他命令都运行正常,但只有我试图在后台运行的命令不能正常工作。