将Consul作为Windows服务启动

时间:2019-04-15 09:55:51

标签: windows powershell consul spring-cloud-consul

我正在步骤Windows上运行领事,

  1. 下载consul.exe
  2. 像这样安装nssm

    2.1。iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))

    2.2。choco install -y nssm

  3. 为领事创建配置文件:

    { "bootstrap": false, "server": true, "datacenter": "MyServices", "data_dir": "C:\Marchello\Downloads\cons\data", "log_level": "INFO" }

  4. 执行nssm命令:

    nssm install Consul C:\Marchello\Downloads\cons\consul.exe agent -config-dir C:\Marchello\Downloads\cons\config --ui-dir C:\Marchello\Downloads\cons\ui

  5. 收到消息Service Consul installed successfully

  6. 运行命令nssm start Consul 结果,我收到消息:Consul: Unexpected status SERVICE_PAUSED in response to START control

我很困惑,我做错了什么?

2 个答案:

答案 0 :(得分:1)

实际上有多少服务在启动? 启动超过16个服务时会发生这种情况。前16个将成功启动,然后其余的保持“已暂停”状态。

另一方面,这可能是特权问题。将登录更改为管理员应该可以解决此问题。

此外,在安装服务前后,检查应用程序事件日志中源为nssm的错误。

希望这些步骤对您有所帮助。

答案 1 :(得分:0)

尝试使用Windows服务sc.exe

基本领事配置JSON

{
  "datacenter": "east-aws",
  "data_dir": "d:\\workspace\\consul",
  "log_level": "INFO",
  "node_name": "foobar",
  "server": true,
  "bind_addr": "127.0.0.1",
  "bootstrap": true,
  "ui": true,
  "log_file" : "d:\\workspace\\consul.log" 
}

config.json保留在此文件夹d:\ workspace \ consul

sc.exe创建“ Consul” binPath =“” d:\ workspace \ consul \ Consul.exe代理-config-dir = d:\ workspace \ consul“ start =自动

在上面的命令中,binPath = 之后必须有一个空格,并且双引号的打开/关闭也是必须的。这意味着所有与领事相关的命令都应放在双引号内。

sc.exe启动“领事”