Consul Windows Service不再以错误"不正确的功能"

时间:2018-04-19 02:39:49

标签: windows service windows-services consul nssm

所以有一次我在Windows 7上运行了领事。这是几个月前的事了。最近我开始回顾领事,所以我使用找到here on the Chocolatey website的Chocolatey包安装了它。

首先,程序包在尝试启动服务时始终会抛出错误。错误:

10.0.0.121

这并不能让Chocolatey认为包装无法安装。之后,我尝试使用nssm转储服务,这就是:

c o n s u l :   U n e x p e c t e d   s t a t u s   S E R V I C E _ S T O P P E D   i n   r e s p o n s e   t o   S T A R T   c o n t r o l .

如果我拿上面的AppParameters并在领事后粘贴它们,它的效果非常好。所以,我迷失了为什么我无法启动这项服务。

C:\ProgramData\chocolatey PS>nssm dump consul
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe install consul C:\ProgramData\chocolatey\lib\consul\tools\consul.exe
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppParameters "agent -ui -config-dir=C:\ProgramData\consul\config -data-dir=C:\ProgramData\consul\data -bind '127.0.0.1' -bootstrap -server"
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppDirectory C:\ProgramData\chocolatey\lib\consul\tools
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppExit Default Exit
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppEnvironmentExtra :GOMAXPROCS=2
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppStdout C:\ProgramData\consul\logs\consul-output.log
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppStderr C:\ProgramData\consul\logs\consul-error.log
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppRotateFiles 1
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppRotateOnline 1
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul AppRotateBytes 10485760
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul DisplayName consul
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul ObjectName "NT Authority\NetworkService"
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul Start SERVICE_AUTO_START
C:\ProgramData\chocolatey\lib\NSSM\tools\nssm.exe set consul Type SERVICE_WIN32_OWN_PROCESS

当我查看事件查看器时,它会告诉我此错误消息:

C:\ProgramData\chocolatey PS>start-service consul
start-service : Service 'consul (consul)' cannot be started due to the following error: Cannot start service consul on computer '.'.
At line:1 char:1
+ start-service consul
+ ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand

有人最近在Windows上有领事Chocolatey包吗?是否有可能是Windows错误,NSSM错误,甚至是领事错误?  我尝试了不同版本的NSSM和不同版本的consul,结果相同。我可以获得任何帮助我在Windows上运行领事的帮助。

1 个答案:

答案 0 :(得分:1)

为了防止其他人遇到这个问题,我遇到了一些问题需要解决才能让服务启动。

首先,我有多个私有IP地址,当我使用Chocolatey安装软件包时,我需要使用带有--params命令的choco install选项或通过指定来指定IP地址一个领事配置文件。我上面做了这个,但是由于这个原因,我最初浪费了很多时间。此外,在指定要绑定的IP地址时,还需要指示需要consul才能在服务器模式下运行。因此,只需下载软件包并尝试运行consul在某些情况下无法工作。此外,在使用consul指定参数时,=符号非常重要。有时您只需添加空格并且不使用引号就可以逃脱,但我建议您始终使用=指定参数。我用来在我的本地Windows 7机器上运行它的最后一个命令是:

cinst consul --yes --force --params='"-server -bootstrap -bind=""127.0.0.1"" "'

在故障排除过程中,我遗漏了几件事。

  1. 如果您已经安装了consul,请确保服务已停止并确保在尝试使用Chocolatey重新安装领事之前没有运行任何进程。要确保在PowerShell中运行它:
  2. Stop-Service consul; Get-Process consul -ErrorAction SilentlyIgnore | Stop-Process -Force

    1. 如果服务没有开始查看Chocolatey包放置日志文件的位置。对我来说,它位于C:\ ProgramData \ consul \ logs \ consul-error.log下。

    2. 我没有先了解NSSM。它真的是一个非常棒的工具,可以让您轻松调试服务无法启动的原因。如果你想调整consul的启动参数,只需在你的控制台中运行:

    3. nssm edit consul