Consul Windows Service starter ikke længere med fejl 'Fejlfunktion'

Indlæg af Hanne Mølgaard Plasc

Problem



Så på et tidspunkt havde jeg konsul på Windows 7. Dette var flere måneder siden. For nylig begyndte jeg at se tilbage på konsul, så jeg installerede den ved hjælp af Chocolatey-pakken fundet her på Chocolatey-webstedet. [12]


For det første kaster pakken altid en fejl, når den forsøger at starte tjenesten. Fejlen:


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 .


Det betyder ikke, at Chocolatey tror, ​​at pakken ikke har installeret. Efterfølgende forsøger jeg at dumpe tjenesten ved hjælp af nssm, og det er det der ser ud:


C:ProgramDatachocolatey PS>nssm dump consul
C:ProgramDatachocolateylibNSSM	ools
ssm.exe install consul C:ProgramDatachocolateylibconsul	oolsconsul.exe
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppParameters "agent -ui -config-dir=C:ProgramDataconsulconfig -data-dir=C:ProgramDataconsuldata -bind '127.0.0.1' -bootstrap -server"
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppDirectory C:ProgramDatachocolateylibconsul	ools
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppExit Default Exit
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppEnvironmentExtra :GOMAXPROCS=2
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppStdout C:ProgramDataconsullogsconsul-output.log
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppStderr C:ProgramDataconsullogsconsul-error.log
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppRotateFiles 1
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppRotateOnline 1
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul AppRotateBytes 10485760
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul DisplayName consul
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul ObjectName "NT AuthorityNetworkService"
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul Start SERVICE\_AUTO\_START
C:ProgramDatachocolateylibNSSM	ools
ssm.exe set consul Type SERVICE\_WIN32\_OWN\_PROCESS


Hvis jeg tager ovenstående AppParameters og indsætter dem efter konsul, fungerer det perfekt. Så jeg er fortabt, hvorfor jeg ikke kan starte tjenesten.


C:ProgramDatachocolatey 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


Når jeg ser på Event Viewer, fortæller den mig denne fejlmeddelelse:


The consul service terminated with the following service-specific error: 
Incorrect function.


Har nogen fået konsul Chocolatey-pakken til at virke for nylig på Windows? Er der en chance for, at dette er en Windows-fejl eller en NSSM-fejl eller endda en konsul-fejl?
 Jeg prøvede forskellige versioner af NSSM og forskellige versioner af konsul med samme resultat. Enhver hjælp jeg kan få for at få konsul kører på Windows ville blive værdsat.

Bedste reference


Bare hvis en anden kører på tværs af dette problem, havde jeg et par problemer, som jeg havde brug for at løse for at få tjenesten til at starte.


For det første havde jeg flere private IP-adresser, og da jeg installerede pakken ved hjælp af Chocolatey, måtte jeg angive IP-adressen ved hjælp af enten --params -optionen med kommandoen choco install eller ved at angive den via en konsul-konfiguration fil. Jeg gjorde det herover, men først spildte jeg meget tid på grund af det. Når du angiver IP-adressen for at binde til, skal du også angive, at du har brug for konsul til at køre i server-tilstand. Så bare at downloade pakken og forsøge at køre konsulter vundet i nogle tilfælde. Signaturet = er også ret vigtigt, når du angiver parametre med konsul. Nogle gange kan du komme væk med blot at tilføje et mellemrum og bruge ingen citater , men jeg vil anbefale, at du altid angiver parametrene ved hjælp af =. Den endelige kommando, jeg plejede at få det til at køre på min lokale Windows 7-maskine, var dette:


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


Der var flere ting jeg savnede her under fejlfinding.



  1. Hvis du allerede har en konsul installeret, skal du sørge for at tjenesten er stoppet, og sørg for, at der ikke er nogen konsul proces før du forsøger at geninstallere consul ved hjælp af Chocolatey. Sørg for at køre dette i PowerShell:



Stop-Service consul; Get-Process consul -ErrorAction SilentlyIgnore | Stop-Process -Force



  1. Hvis tjenesten ikke bliver vundet, begynder du ikke at se hvor Chocolatey-pakken placerer logfilerne. For mig var det under C: \ ProgramData \ consul \ logs \ consul-error.log.

  2. Jeg lærte først om NSSM først. Det er virkelig et fantastisk værktøj, der gør det nemt at fejle hvorfor tjenesten ikke startede. Hvis du vil justere startparametrene for konsul, skal du bare køre dette i din konsol: [13]



nssm edit consul