我有一个应用程序,我想在本地调试。为此,我必须先运行Consul (这是一个jar),然后调用2个REST API方法,然后调用两个POSTs,然后启动elasticmq-server并调用8 GETs。
目前,我已经在一个jar文件中启动了bat,但是它对UNIX来说是无用的。我尝试了以下几点:
subprocess.call(['java', '-jar', 'elasticmq-server-0.8.12.jar'], shell=True)
但它不像我想的那样管用。我希望jar在双击script.py后能在不同的控制台上发布。有可能吗?下面我附上Minimal Complete Verifiable Example
我的代码
import subprocess
import time, sys
import requests
subprocess.call(['java', '-jar', 'elasticmq-server-0.8.12.jar'], shell=True)
#call("my.bat") - it works on Windows, but not on Linux
time.sleep(5) #elastic must complete launch - it usually takes 1024 milsec, so I w8 5 just in case.
requests.get('http://localhost:8888/?Action=CreateQueue&QueueName=top-secret')
requests.get('http://localhost:8888/?Action=CreateQueue&QueueName=top-secret2')
requests.get('http://localhost:8888/?Action=CreateQueue&QueueName=top-secret3')
requests.post('http://127.0.0.1:7777/some/catalogs/register', data = {"JSON WITH DATA FOR CONSUL")期望行为
发布于 2016-08-16 20:04:11
我知道,您不能将上述call方法移植到Windows和Linux之间。你必须寻找另一个解决方案。
发布于 2016-08-12 08:42:11
subprocess模块对使用创业信息处理Windows上的新窗口创建具有特定的支持。在*nix和Linux上,您实际上希望生成一个新的终端仿真器,因此您可以调用类似于:x-terminal-emulator -e 'bash -c "sleep 20"' .但这对Mac可能行不通..。你需要有效地测试你在哪个操作系统上。
https://stackoverflow.com/questions/38913256
复制相似问题