Per ogni runlevel (0 6) esiste una cartella /etc/rc[N[.d
In ogni directory ci sono collegamenti simbolici che iniziano con una "S" o con una "K". "S" per avviare e "K" per interrompere. Gli script vengono eseguiti in un modo lessicale del nome file , in altre parole S10script verrà eseguito prima di S20myscript. Per esempio :
abbiamo due semplici script, lo script second.sh deve essere eseguito dopo lo script fist.sh nel runlevel corrente.
root@localhost init.d]# cat /etc/init.d/first.sh
#!/bin/bash
#
echo 'I am the first' >> /var/log/messages
root@localhost init.d]# cat /etc/init.d/second.sh
#!/bin/bash
#
echo 'I am the second' >> /var/log/messages
Qual è il mio livello attuale?
[root@localhost init.d]# runlevel
N 5
Ora abbiamo bisogno di un collegamento simbolico che inizi cioè S (N) myScript per il primo e S (N + 1) mysecondScript:
root@localhost rc5.d]# ln -s /etc/init.d/first.sh /etc/rc5.d/S1first
root@localhost rc5.d]# ln -s /etc/init.d/second.sh /etc/rc5.d/S2second
Possiamo riavviare e controllare il registro dei messaggi:
[root@localhost ~]# cat /var/log/messages | grep "I am" -A 1 -B 1
Dec 13 13:53:36 localhost rpc.statd[3468]: Version 1.0.9 Starting
I am the first
Dec 13 13:53:37 localhost hcid[3532]: Bluetooth HCI daemon
--
Dec 13 13:53:40 localhost automount[3689]: lookup_read_master: lookup(nisplus): couldn't locate nis+ table auto.master
I am the second
Dec 13 13:53:41 localhost gpm[3785]: *** info [startup.c(95)]:
Testato su vecchi Centos5