Při změně úrovně běhu se nejprve spustí tzv. stop-skripty, které ukončí činnost některých programů současné úrovně. Dále se spustí start-skripty nové úrovně, a tím se zpravidla spustí i řada programů.
Pro názornost zde ukážeme příklad změny úrovně běhu z hodnoty 3 na 5:
Administrátor (uživatel root)
sdělí procesu init, že se má změnit
úroveň běhu:
init 5
Podle konfiguračního souboru /etc/inittab
init usoudí, že má spustit skript /etc/init.d/rc
s novou úrovní běhu jakožto parametrem.
Nyní volá program rc ty stop skripty
současné úrovně běhu, jimž neodpovídají start-skripty v nové úrovni.
V našem případě jsou to ty skripty, jež se nalézají v adresáři
/etc/init.d/rc3.d (stará úroveň běhu byla 3)
a začínají písmenem KJména stop skriptů
začínají písmenem K kill,
zatímco jména startovacích skriptů začínají písmenem S
start.
Po písmenu K následuje číslo, udávající pořadí,
aby byly respektovány případné závislosti mezi programy.
Nakonec se zavolají startovací skripty nové úrovně běhu,
které v našem případě leží v adresáři /etc/init.d/rc5.d a začínají
písmenem S. Rovněž zde se dodržuje pořadí.
Pokud se stane, že změníte úroveň běhu na úroveň právě běžící
(tj. např. z úrovně 3 opět na úroveň 3),
přečte program init pouze svůj konfigurační
soubor /etc/inittab a zjistí, zda i v rámci téže úrovně
nejsou nějaké změny. Pokud je najde, provede příslušné kroky
(například spustí program getty pro další konzoli).