所以有一次我在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上运行领事的帮助。
答案 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"" "'
在故障排除过程中,我遗漏了几件事。
Stop-Service consul; Get-Process consul -ErrorAction SilentlyIgnore | Stop-Process -Force
如果服务没有开始查看Chocolatey包放置日志文件的位置。对我来说,它位于C:\ ProgramData \ consul \ logs \ consul-error.log下。
我没有先了解NSSM。它真的是一个非常棒的工具,可以让您轻松调试服务无法启动的原因。如果你想调整consul的启动参数,只需在你的控制台中运行:
nssm edit consul