# Servizio di Windows

Un servizio di Windows è un programma eseguibile che svolge compiti specifici e che è progettato per non dover richiedere l'intervento dell'utente. Normalmente i servizi di Windows vengono avviati quando il sistema operativo Windows è avviato, e girano in background per tutto il tempo durante il quale gira Windows. Concettualmente sono simili ai daemon di Unix. La lista dei servizi attivi appare se si accede all'elenco dei processi di Windows Task Manager, normalmente associati agli username SYSTEM, SERVIZIO LOCALE o SERVIZIO DI RETE, sebbene non tutti i processi con username SYSTEM siano servizi. Principalmente, i servizi di Windows sono dei demoni.

## Gestione dei servizi

Dopo che un servizio è stato installato può essere gestito mediante l'opzione Strumenti di amministrazione del Pannello di controllo di Windows, oppure digitando "Services.msc" nella casella dei comandi di Esegui del menù Start. La console di gestione "Servizi" fornisce una breve descrizione delle funzioni eseguite ed il percorso del file eseguibile, lo stato corrente del servizio, il tipo di avvio, le dipendenze e l'account sotto cui il servizio è in esecuzione. Mediante il pannello l'utente può:
* Avviare, interrompere, sospendere o riavviare i servizi.
* Specificare i parametri di un servizio.
* Cambiare il tipo di avvio, scegliendo fra Automatico, Manuale e Disabilitato:
** Automatico avvia il servizio all'avviamento del sistema,
** Manuale avvia il servizio quando richiesto dall'utente o quando richiesto da un'applicazione (almeno teoricamente, ma in realtà solo in alcuni casi, a seconda del servizio),
** Disabilitato disabilita completamente il servizio ed impedisce l'esecuzione delle relative dipendenze,
** Automatico (Ritardato) nuovo tipo di avvio introdotto da Windows Vista, che avvia il servizio con un breve intervallo dopo che il sistema ha completato le operazioni critiche di avviamento, in modo che l'avviamento avvenga più velocemente.
* Cambiare l'account sotto cui il servizio si registra.
* Configurare le opzioni di ripristino in caso di malfunzionamento.
* Esportare la lista dei servizi su un file di testo o su un file CSV.
Anche da Windows Vista in poi l'utente può manipolare i servizi digitando "services.msc" nella casella dei comandi, accessibile tenendo premuto il tasto windows e premendo il tasto "r". L'uso di MSConfig per gestire i servizi introduce la necessità di rispondere ad un prompt ad ogni riavvio, quindi questo strumento dovrebbe essere usato solo per il tempo strettamente necessario ad apportare al sistema le modifiche desiderate. Il Task Manager può essere sempre usato per fermare un servizio, o per chiuderlo forzatamente (kill) nel caso non risponda.

## Strumenti di sviluppo di un servizio Windows

Un servizio di Windows può essere creato ad esempio con Microsoft Visual Studio. Windows mette a disposizione un'interfaccia chiamata Service Control Manager per avviare e interrompere l'esecuzione dei servizi. Un'applicazione progettata per funzionare come servizio deve essere in grado di gestire i messaggi start|stop|pause|... inviati dal Service Control Manager. Sebbene di solito i servizi non dispongano di interfaccia utente, a volte gli sviluppatori aggiungono form e altri componenti di interfaccia. Per poter usare questi componenti bisogna spuntare la checkbox "Consenti al servizio di interagire col desktop" nella scheda Connessione delle Proprietà del servizio.