Un servizio bloccato su Arresto in corso...
Lo snap-in mostra Arresto in corso e non si muove mai. La risposta solita è Gestione attività, un'ipotesi su quale svchost.exe lo ospiti, e Termina attività - che termina anche ogni altro servizio di quel processo, senza dirle quali erano.
Perché succede
- Il servizio non risponde alla richiesta di arresto. Windows glielo chiede con garbo e aspetta. Un servizio che si è bloccato, o che attende qualcosa che non tornerà, non risponde mai.
- Qualcosa che ne dipende è ancora in esecuzione. Il gestore rifiuta l'arresto invece di rompere l'altro, e lo snap-in lo mostra come un'attesa.
- Condivide il processo con altri. La maggior parte dei servizi Windows vive dentro uno
svchost.execondiviso. Terminare quel processo li termina tutti, che è esattamente ciò che fa Gestione attività senza nominarli.
Guardi prima di terminare qualsiasi cosa
Chieda cosa si porterebbe via terminarlo. Non accade nulla finché non toglie --dry-run.
$ bws kill Spooler --dry-run
L'anteprima nomina il processo con il suo numero, nomina ogni altro servizio che vive al suo interno e mostra due passaggi anziché uno: chiedere al servizio di fermarsi e, solo se questo non funziona, terminare il processo. Un servizio che si ferma da solo non viene mai terminato.
--forcesalta il passaggio cortese e termina subito il processo. Cambia il piano e non la sua esecuzione, così l'anteprima mostra un passaggio invece di due e la differenza è visibile prima che accada qualsiasi cosa.--restartrimette tutto a posto una volta sparito il processo - la voce su cui ha chiesto e tutto ciò che ne condivideva il processo. Senza, la macchina resta con quei servizi fermi, e il rapporto dice come riavviarli.
- Il rifiuto viene prima del pulsante. Un driver, un processo che il sistema protegge, un servizio per il quale il gestore non accetta un arresto - rifiutati quando il piano viene costruito, con la ragione, anziché dopo sessanta secondi di attesa.
- Un avviso quando conta. Se la voce è una senza la quale la macchina non funziona, il piano lo dice - fermarla fa cadere la macchina, non solo il servizio.
Terminare un processo è l'unica cosa che fa questo strumento a cui nessuno può opporsi a nome della macchina. Per questo è un comando a sé, per questo l'anteprima nomina ogni servizio che si porta via, e per questo il passaggio cortese viene prima a meno che lei dica altrimenti.
L'ordine più sicuro
- Vedere cos'è.
bws show Spooler- il processo, ciò che ne dipende, da cosa dipende e se accetta richieste di arresto. - Provare l'arresto ordinario, come piano.
bws stop Spooler --dry-run --dependents. Se la risposta è un rifiuto, dice quale delle tre ragioni è. - Se non si ferma, guardare cosa costa terminarlo.
bws kill Spooler --dry-run, e leggere l'elenco dei servizi che condividono quel processo. - Poi farlo, con una via di ritorno.
bws kill Spooler --restart. Il rapporto finisce con ciò che non ha funzionato e i comandi che rimettono le cose a posto.
Tutti e quattro funzionano allo stesso modo nella finestra: clic destro su una riga, scegliere Force stop..., leggere il piano, e il pulsante sotto porta il nome di ciò che farà.
Perché non usare semplicemente Gestione attività
Perché risponde a un'altra domanda. Gestione attività conosce i processi e questo problema riguarda i servizi, e i due non corrispondono uno a uno.
Uno svchost.exe condiviso può ospitare una dozzina di servizi. Gestione attività lo terminerà senza dire quali dodici, nessuno torna da solo e nulla le dice dopo cosa si è fermato. Un EDR che segnala un processo che termina svchost.exe fa il suo lavoro, e non può distinguere il suo clic da qualsiasi altro.