我有一个我想在本地调试的应用程序。为此,我必须首先运行Consul
(这是jar
),然后我必须调用2个REST API
方法,因此我调用了两个POST
。然后我启动elasticmq-server
并致电8
GET
s。
目前我已在jar
文件中启动bat
,但这对UNIX
无效。我尝试了以下方法:
subprocess.call(['java', '-jar', 'elasticmq-server-0.8.12.jar'], shell=True)
但它不能按我的意愿工作。双击script.py后,我希望jar
在单独的控制台中启动。可能吗?下面我附上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")
预期行为
答案 0 :(得分:1)
我知道,您无法在Windows和Linux之间移植所述call
方法。你必须寻找另一种解决方案。
答案 1 :(得分:0)
a2 - last match /a/
b
c - first match /c/
模块特别支持使用startupinfo在Windows上处理新窗口创建。
在* nix和Linux上,您希望实际生成一个新的终端模拟器,因此您可以调用以下内容:
subprocess
....但这可能不适用于Mac ......
而且您需要有效地测试您所使用的操作系统。