Python脚本来启动和配置几个程序

2024-09-29 19:01:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序,我想在本地调试。为此,我必须首先运行Consul(这是一个jar),然后我必须调用两个REST API方法,所以我调用了两个POST方法。然后我启动elasticmq-server并调用8GET

目前,我已经在一个bat文件中启动了jar,但是这使得它对UNIX没有用处。我尝试了以下方法:

subprocess.call(['java', '-jar', 'elasticmq-server-0.8.12.jar'], shell=True)

但这不是我想要的。我希望jar在双击后在不同的控制台中启动脚本.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")

预期行为

  1. 双击启动脚本。你知道吗
  2. 在新控制台中启动consul
  3. 在新控制台中启动elastic
  4. 等待2-5秒-它已经工作了。你知道吗
  5. 呼叫请求-它已经工作了。你知道吗

Tags: 方法importlocalhosthttpgetservertopaction
2条回答

subprocess模块特别支持在带有startupinfo的窗口上处理新窗口的创建。 在*nix和Linux上,您希望实际生成一个新的终端仿真器,以便调用如下内容: x-terminal-emulator -e 'bash -c "sleep 20"'。。。。但这在Mac上可能不起作用。。。 你需要有效地测试你所使用的操作系统。你知道吗

我知道一个事实,您不能在Windows和Linux之间移植所说的call方法。你得另寻出路。你知道吗

相关问题 更多 >

    热门问题