Come funziona il processo di avvio con questi script?

Linux usa un servizio speciale di avvio chiamato Sysvinit. È basato su un concetto di run-level. Può essere estremamente diverso da un sistema all'altro, così non possiamo supporre che poiché le cose funzionavano in <inserite il nome della distro> devono funzionare così anche in LFS. LFS ha il suo modo di fare le cose, ma rispetta gli standard comunemente accettati.

SysVinit (che chiameremo init d'ora in avanti) funziona usando uno schema a run-level. Ci sono 7 (da 0 a 6) run-level (oggi, ci sono più run-level, ma sono per casi speciali e generalmente non usati. La pagina man di init descrive questi dettagli), e ciascuno di essi corrisponde alle cose che il computer dovrebbe fare quando parte. Il run-level di default è 3. Qui ci sono le descrizioni dei diversi run-level come vengono spesso implementati:

0: arresta il computer
1: modo mono-utente
2: modo multi-utente senza rete
3: modo multi-utente con rete
4: riservato per personalizzazione, altrimenti fa lo stesso del 3
5: come il 4, è normalmente usato per login grafico (come xdm di X o kdm di KDE)
6: riavvia il computer

Il comando usato per cambiare run-level è init <runlevel> dove <runlevel> è il run-level di arrivo. Per esempio, per riavviare il computer, un utente digiterà il comando init 6. Il comando rebootè solo un alias per questo, così come il comando halt è un alias per init 0.

Ci sono diverse directory sotto /etc/rc.d che appaiono come rc?.d (dove ? è il numero del run-level) e rcsysinit.d tutte contenenti diversi link simbolici. Certi iniziano con una K, gli altri iniziano con una S, e tutti hanno due numeri che seguono la lettera iniziale. La K significa fermare (kill) un servizio, e la S significa avviare (start) un servizio. I numeri determinano l'ordine secondo il quale gli script vengono eseguiti. Quando init commuta su un altro run-level, i servizi appropriati vengono arrestati e altri vengono avviati.

I veri script sono in /etc/rc.d/init.d. Essi fanno tutto il lavoro, e i link simbolici puntano ad essi. I link di avvio e di arresto puntano allo stesso script in /etc/rc.d/init.d. Ciò perché gli script possono essere chiamati con diversi parametri come start, stop, restart, reload, status. Quando viene incontrato un link K, lo script appropriato è avviato con l'argomento stop. Quando viene incontrato un link S, lo script appropriato è avviato con l'argomento start.

C'è una eccezione. I link che iniziano con una S nelle directory rc0.d e rc6.d non faranno avviare nulla. Essi verranno chiamati con il parametro stop per fermare tutto. La logica dietro a questo è che quando riavviate o fermate il sistema, non volete avviare nulla, solo fermare il sistema.

Queste sono descrizioni di cosa gli argomenti fanno fare agli script:

Sentitevi liberi di modificare il modo di funzionare del processo di boot (dopo tutto, è il vostro sistema LFS). I file dati qui sono solo un esempio di come può essere fatto in un modo carino (beh, ciò che noi consideriamo carino voi potreste odiarlo).