Domanda
Come è possibile avere la lista dei servizi in esecuzione da linea di
comando?
Risposta
Dal prompt dei comandi di Windows (Start,
Esegui, digitare cmd e dare conferma) è possibile
eseguire facilmente molte delle operazioni che in genere si eseguono
manualmente tramite interfaccia grafica, in particolare con l'avanzare delle
versioni di Windows. Non fa eccezione la gestione dei servizi. Per prima
cosa è importante ricordare cos'è un servizio: un servizio è un programma
che viene eseguito in background, senza interfacci grafica, che può svolgere
i compiti più svariati, dalla gestione delle stampanti a quella del desktop,
dal server web all'antivirus e tante altre funzionalità integrate nel
sistema operativo. Sono in sostanza dei programmi sempre in esecuzione che
possono essere autonomi o vivere in più d'uno in un solo processo
(tipicamente ma non per forza, chiamato svchost.exe).
Vediamo per prima cosa come è possibile ottenere la lista di servizi in
esecuzione senza ricorrere a services.msc. Dal prompt dei
comandi semplicemente digitare
net start
Questo comando
mostrerà una serie di nomi estesi dei servizi correntemente in esecuzione.
Se si desidera terminarne uno, ad esempio il servizio "Audio di Windows"
basterà digitare
net stop "Audio di Windows"
E quindi per riavviarlo
net start "Audio di Windows"
Se per qualche problema che si è verificato con il
servizio si vuole arrestarlo e riavviarlo questa coppia di comandi può
essere utile e spesso è la soluzione più semplice a molti problemi. Un
metodo alternativo per recuperare la lista di servizi in esecuzione è dare
il seguente comando:
tasklist /svc
Il comando mostrerà la lista di tutti i processi in
esecuzione, con nome, PID e nell'ultima colonna il nome (in versione breve)
di eventuali servizi contenuti all'interno del processo. Questi nomi brevi
possono essere utilizzati alternativa a quelli estesi, ad esempio se si
vuole terminare il servizio "Audio di Windows" è anche possibile utilizzare
il seguente comando:
net stop Audiosvc
Domanda
Come si può terminare un servizio da linea di comando se il comando net
stop non funziona?
Risposta
Se con il comando net stop, si dovesse ricevere un
errore che rende impossibile l'arresto del servizio si può provare a
terminare il processo che contiene il servizio. Per fare questo occorre
prima di tutto individuare il PID (ovvero l'identificatore univoco) del
processo tramite il comando tasklist /svc, come visto poco
fa, cercando nell'ultima colonna mostrata un riferimento al servizio. In
secondo luogo bisogna verificare quali altri servizi sono in esecuzione
nello stesso processo, è importante accertarsi che tra questi non ve ne
siano di critici, o meglio ancora che sia l'unico, poiché terminare servizi
di sistema critici potrebbe rendere instabile il sistema. Una volta
individuato il PID, sempre dal prompt dare il seguente comando:
taskkill /PID pidDelServizio /F
Dove il parametro F indica che si deve
tentare di forzare la terminazione del processo. Se questo non dovesse
essere sufficiente consultare l'articolo
su come terminare qualsiasi processo.
|