Guida

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.exe condiviso. 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.

  • --force salta 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.
  • --restart rimette 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

  1. Vedere cos'è. bws show Spooler - il processo, ciò che ne dipende, da cosa dipende e se accetta richieste di arresto.
  2. Provare l'arresto ordinario, come piano. bws stop Spooler --dry-run --dependents. Se la risposta è un rifiuto, dice quale delle tre ragioni è.
  3. Se non si ferma, guardare cosa costa terminarlo. bws kill Spooler --dry-run, e leggere l'elenco dei servizi che condividono quel processo.
  4. 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.