以 windows 服务启动 Consul

Start Consul as windows service

我正尝试 运行 对 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. 为 consul 创建配置文件:

    { "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

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

实际启动的服务有多少? 当启动超过 ~16 个服务时会发生这种情况。前 16 个会启动成功,然后其余的保持 "Paused" 状态。

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

此外,检查应用程序事件日志中的错误,其中的错误源是在您安装服务时 nssm

希望步骤对你有帮助。

尝试使用 windows 服务 sc.exe

Basic Consul configuration 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 create "Consul" binPath= "d:\workspace\consul\Consul.exe agent -config-dir=d:\workspace\consul" start= auto

在上面的命令中,binPath=< space> 和双引号的 open/close 之后必须有一个 space .这意味着所有与 consul 相关的命令都应该放在双引号内。

sc.exe start "Consul"