Il file di configurazione /etc/inittab prevede che all'arrivo in ogni nuovo runlevel venga richiamato lo script (programma composto da comandi di shell) /etc/init.d/rc con l'indicazione del runlevel attuale.
Il programma /etc/init.d/rc conosce il runlevel precedente, quindi per prima cosa spegne i servizi avviati nel runlevel precedente richiamando , nella directory /etc/rc<livello>.d tutti gli script che iniziano con la lettera K, in ordine alfabetico, con il parametro stop.
Quindi avvia tutti i servizi del nuovo livello, richiamando gli script della directory /etc/rc<livello>.d che iniziano con la lettera S, in ordine alfabetico, con il parametro start.
Se un servizio deve essere attivato in più livelli, e poi deve essere spento, esso avrà una copia dello script di avvio ed una di quello di spegnimento nella directory di ognuno dei livelli.
Per semplificare le cose ed evitare duplicazioni, tutti gli script sono radunati nella directory /etc/init.d, lo stesso script si occuperà dell'accensione e dello spegnimento del servizio, in base al parametro e nelle directory dei livelli troveremo solo dei link simbolici.