windows - Stop/Start Service - Håndtering STOP\_PENDING og START\_PENDING

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan laver du dine stop/start service scripts graciøst håndterer de tjenester, der sidder fast i STOP\_PENDING eller START\_PENDING ...


Tilknyttet SC STOP og START. Stop og start en tjeneste via batch eller cmd fil?


Jeg har en ting i tankerne, men jeg kan ikke lide det.

Bedste reference


Det er sådan jeg nærmer mig stop.



  • Stop: sc\% host\% stop\% service\% || ECHO FEJL! &Amp; & EXIT -1

  • Loop venter på, at staten stoppes.
    Loop med et maksimum antal iterationer (fx 30). Tester om tjenesten er stoppet (fx sc\% host\% forespørgsel\% service\% | find/i 'STOPPED'). Vent nogle sekunder i hver iteration (fx 10). Når du når de maksimale iterationer, skal du prøve at dræbe processen ved hjælp af taskkill (fx arbejde udgangen af ​​sc queryex Alerter | find/i 'PID').


Andre referencer 1


For mig hænger nogle gange en 'Windows-tjeneste', når jeg har vinduet services.msc åbent. Jeg kan ikke dræbe processen, og heller ikke bruge net stop eller sc stop.


Men når jeg lukker vinduet services.msc, stopper tjenesten straks.

Andre referencer 2


Først åbnes service.msc i dialogboksen Egenskaber for din målrettede tjeneste, gå til Gendannelsesfanebladet * (Kør -> Services.msc -> Højreklik på Mål -Service -> Egenskaber -> Gendannelse faneblad *)


Sørg for, at Første \ Second \ Efterfølgende fejl er indstillet til: Tag ingen handling .
Indtast billedbeskrivelse her [6]


Få PID for din måltjeneste ved hjælp af: sc queryex ServiceName :


Dræb processen ved at bruge taskkill/f/pid your\_PID\_number