In comune con altre parti del vecchio sistema operativo Unix, il termine "demone" dà poco a sapere quale potrebbe essere la sua funzione.

Un demone è un compito che viene eseguito in background, e c'è un piccolo esercito di loro che viene avviato quando accendi la tua macchina. Esistono demoni per il controllo di attività automatizzate, demoni per la gestione di alimentazione e utilizzo della CPU, demoni per la stampa e demoni per la scrittura dei registri di sistema. Alcuni denotano il loro stato terminando con la lettera "d", mentre altri preferiscono l'anonimato di nomi come "binfmpt-support" o "brltty".

I demoni sono ovviamente una parte importante dell'ambiente di corsa. Ma c'è anche un piccolo problema. Senza alcuna ispirazione divina, la distribuzione media di Linux non può indovinare con precisione quali demoni ti saranno utili e quali no. Il risultato è che normalmente giocheranno sul sicuro e commetteranno un errore di prudenza.

Ciò significa che il desktop può includere un demone di gestione dell'alimentazione del laptop o strumenti Bluetooth, nessuno dei quali può essere di grande utilità. Questi verranno comunque caricati e utilizzeranno una memoria di valore, in modo da poter risparmiare tempo di avvio e memoria dedicando un po 'di tempo alla potatura dei demoni e adattandoli alle proprie esigenze. Il trucco è sapere quali tagliare.

I servizi sono ciò che la maggior parte delle persone pensa quando considerano i demoni. Spesso vengono avviati all'avvio e vengono eseguiti silenziosamente in background, ma non necessariamente devono essere processi di gestione del sistema leggeri. Non c'è motivo per cui suite di applicazioni complete non possano essere considerate demoni.

Quali servizi sono e non sono in esecuzione dipende interamente dalla tua distribuzione e da cosa stai usando la tua distribuzione. Se si sta utilizzando una distribuzione adatta per un ambiente server, è probabile che il server Web Apache, insieme alla sua classe di applicazioni di supporto, sia eseguito come un demone.

Questo è un grande vantaggio per le risorse se non ti serve un server web, e non è passato molto tempo da quando distribuzioni come Mandriva installavano e gestivano un server web per impostazione predefinita. È improbabile che ciò accada in questi tempi frugali, ma probabilmente ci sarà ancora qualcosa che non ti servirà in esecuzione in background.

Elenca i possibili trasgressori

Esistono molti modi per elencare quali servizi sono in esecuzione, ma uno dei modi più chiari per farlo è usare uno strumento da riga di comando chiamato chkconfig. Potrebbe essere necessario installarlo manualmente tramite il gestore di pacchetti, ma quando viene eseguito dalla riga di comando, crea un elenco di servizi in esecuzione e li trasmette al terminale. L'esecuzione del comando su un'installazione di Ubuntu predefinita ci ha dato 93 attività separate, mentre l'esecuzione dello stesso comando su OpenSUSE 11 ci ha dato 83 compiti. La prima cosa che potresti notare è che è difficile definire esattamente di cosa sia responsabile ciascun servizio. Ecco un taglio dalla parte superiore dell'output di chkconfig sulla nostra macchina Ubuntu:

acpi-support 2345
Acpid 2345
alsa-utils off
anacron 2345
apmd on

I nomi dei servizi sono elencati a sinistra, mentre a destra di ciascuno è una descrizione del runlevel di quel servizio. Linux e Unix prima di esso, utilizzano diversi runlevel per eseguire diversi servizi. Ad esempio, runlevel 1 viene in genere utilizzato come modalità di manutenzione del sistema per utente singolo. Questo potrebbe significare che non ci sono servizi di rete, e certamente non ci sarà un desktop grafico.

Nell'output di esempio sopra, è possibile vedere che il daemon anacron, che gestisce le attività in esecuzione in un momento specifico, sarà eseguito solo quando il sistema viene avviato nei runlevel 2, 3, 4 e 5. Il problema con i runlevel è che non c'è standard particolare su tutte le distribuzioni. Gli unici livelli comuni a tutte le distribuzioni sono 1 e 6, che vengono utilizzati rispettivamente per arrestare e riavviare la macchina. Runlevel 3 in Gentoo è l'intero ambiente multiutente con un desktop. Questo è il runlevel 4 in Slackware e runlevel 5 in Ubuntu, Fedora e OpenSUSE.