Ancora sullo shutdown

È importante seguire le procedure corrette quando si spenge un sistema Linux. Se non lo fate il filesystem probabilmente si corromperà e i file diventeranno illeggibili. Questo perché Linux utilizza la cache del disco, che non scrive sul disco tutto insieme ma solo ad intervalli; un comportamento del genere migliora moltissimo la performance, ma sta anche a significare che se spengete semplicemente il computer d'improvviso la cache può contenere molti dati e quello che si trova sul disco può non essere un filesystem che funziona perfettamente (perché solo alcune cose vi sono state scritte).

Un'altra ragione per non spengere direttamente l'interruttore è che in un sistema multitasking ci possono essere molti processi attivi in background e interrompere l'alimentazione può essere piuttosto disastroso. Usando la corretta sequenza di shutdown vi assicurate che tutti i processi in background possano salvare i propri dati.

Il comando per spengere correttamente un sistema Linux è shutdown. Normalmente può essere usato in due modi:

Quando comincia il vero shutdown dopo i vari ritardi, vengono smontati tutti i filesystem (eccetto quello di radice), i processi utente (se qualcuno è ancora collegato) vengono uccisi, i daemon vengono fermati ed in generale tutto si mette a posto. Fatto questo, init stampa un messaggio che indica che potete spengere la macchina. Allora, e solo allora, le vostre dita si possono muovere nella direzione dell'interruttore.

Talvolta, anche se raramente sui buoni sistemi, è impossibile fare lo shutdown in maniera corretta. Ad esempio se si ha un kernel panic e il kernel muore, esplode, o in genere non si comporta come dovrebbe, può essere totalmente impossibile dare nuovi comandi, quindi è possibile che sia difficile fare bene lo shutdown e tutto quello che potete fare è sperare che non sia successo niente di grave e spengere il computer. Se i danni sono un po' meno pesanti (ad esempio qualcuno ha preso ad accettate la vostra tastiera) ed il kernel e il programma update stanno ancora girando normalmente, probabilmente è una buona idea aspettare un paio di minuti, dare la possibilità ad update di svuotare la cache e solo allora spengere il computer.

Alcuni per fare lo shutdown usano il comando sync[1] tre volte, aspettano che l'I/O del disco sia finito e spengono il computer. Se non ci sono programmi attivi è praticamente la stessa cosa che usare shutdown, ma non smonta i filesystem e ciò può provocare dei problemi con il codice dell'ext2fs di ``filesystem pulito''. Il metodo del sync triplo non è raccomandato (in caso ve lo stiate chiedendo, la ragione per tre sync è che nei primi UNIX, quando i comandi venivano digitati singolarmente, tre sync dava di solito tempo sufficiente a finire qualsiasi I/O del disco).

Note

[1]

sync fa il flush della cache di buffer.