GLM - 19/4/2021 - 3:31


Classifica dei relatori GLM 2014 (per numero di lezioni svolte)

  1. [9] Samuele Cacchiarelli
  2. [6] Andrea Bianchini
  3. [6] Gianluca Gabrielli
  4. [1] Matteo Ciccioli
  5. [1] Fabio Pagnotta
  6. [1] Alessandro Zampa
  7. [1] Emanuele
  8. [1] Roberto Marozzi
  9. [1] Giampiero Rubini

Vuoi diventare relatore GLM? presenta anche tu una lezione su un argomento che pių ti piace relativo a Linux o al mondo dell'OpenSource


Archivio news

server glm
Il nostro Server

bella gnocca freebsd
FreeBSD It's Here!

Che cosa sono i Run Level e a Cosa servono

E' giunto il momento di scoprire come l'avvio (e arresto) dei servizi viene automatizzato; poco sopra ho scritto che per ogni livello di esecuzione (run level) essiste una dir. del tipo rcNUM.d (dove NUM è il numero corrispondente al relativo run level ) (es. rc3.d/ per il run level 3), in ognuna delle dir rcNUM.d sono presenti dei link simbolici che puntano ai corrispondenti servizi della dir init.d;

ecco un esempio di una directory rc3.d/:

[root@localhost rc3.d]# ll
totale 0
...
lrwxrwxrwx 1 root root 14 dic 8 15:33 K74apmd -> ../init.d/apmd*
lrwxrwxrwx 1 root root 15 dic 8 15:33 K75netfs -> ../init.d/netfs*
lrwxrwxrwx 1 root root 17 dic 8 15:33 K89portmap -> ../init.d/portmap*
lrwxrwxrwx 1 root root 15 dic 8 15:33 K90mysql -> ../init.d/mysql*
lrwxrwxrwx 1 root root 13 dic 8 15:33 K90usb -> ../init.d/usb*
lrwxrwxrwx 1 root root 17 dic 8 15:33 K92anacron -> ../init.d/anacron*
lrwxrwxrwx 1 root root 18 dic 8 15:33 K92ipchains -> ../init.d/ipchains*
lrwxrwxrwx 1 root root 17 dic 8 15:33 K92ipvsadm -> ../init.d/ipvsadm*
lrwxrwxrwx 1 root root 19 dic 8 15:33 K95harddrake -> ../init.d/harddrake*
lrwxrwxrwx 1 root root 18 dic 8 15:33 S03iptables -> ../init.d/iptables*
lrwxrwxrwx 1 root root 17 dic 8 15:33 S10network -> ../init.d/network*
lrwxrwxrwx 1 root root 18 dic 8 15:33 S11internet -> ../init.d/internet*
lrwxrwxrwx 1 root root 16 dic 8 15:33 S12syslog -> ../init.d/syslog*
lrwxrwxrwx 1 root root 16 dic 8 15:33 S20random -> ../init.d/random*
...

i link possono essere divisi in due gruppi: quelli del tipo

KnnNome_servizio   per arrestare servizi
SnnNome_servizio   per avviare servizi

In ogni rcNUM.d i link per arrestare i servizi precederanno quelli per avviarli , tutti i link saranno ordinati in maniera da fermare e avviare servizi senza creare problemi ad altri (servizi) , noterete che i link per il "kill" dei servizi sono presenti in tutti i livelli, non solo in quelli dedicati all'arresto e al reboot; questo per fare in modo che che nel passaggio da un livello all'altro vengano fermati tutti i servizi ,che potrebbero essere stati avviati nel precedente run level e non essere previsti per quello attuale. E' chiaro che iniziare il link con la lettera S o la K da solo non è sufficente a determinare quale azione intraprendere fra l'avvio e l'arresto, per questo c'è uno script (contenuto nel file rc )con una regola che assocerà i link di tipo K* all'azione di arresto e a quelli S* l'avvio

Potrebbe a questo punto verificarsi la necessità di impostare per un certo run level (o più di uno) l'avvio o l'arresto automatizzato di un determinato servizio, ci sono varie possibilità :

  1. quella di creare "a mano", nella dir. corrispondente al run level in cui si vuole attivare (o disattivare) il servizio, il link simbolico come descritto precedentemente:
    es:
    [root@localhost rc3.d]# ln -s ../init.d/smb S77smb
    ...

    lrwxrwxrwx 1 root root 13 dic 15 20:42 S77smb ../init.d/smb*
    ...
    creo un link a init.d/


    ottenendo così in rc3.d/ (fra le altre) una riga come questa

  2. quella del'uso del comando chkconfig
  3. chkconfig --list      (mostra i Run Level e i loro servizi)
    chkconfig --level 5 smb off (arresta samba al Run Level 5)
    chkconfig --level 34 smb on (avvia samba per i Run Level 3 e 4)

ci sono altri comandi per gestire i servizi nei run level come ad esempio: tksysv (grafico) o ntsysv ed altri.

N.B. una precisazione e' necessari per il sistema Slackware che usa solo marginalmente il System V, la distribuzione Slack. non chiama il gruppo di directory dedicate alla gestione di ogni runlevel: rc[0-6].d ,usa altri nomi tipo: rcM, ma soprattutto non ha una directory init.d/ che contiene tutti gli script relativi a ciascun servizio, in pratica rc.M richiama i file nella su stessa directory che contengono gli script per la attivazione del servizio, questi file sono divisi per "categorie" ad esempio : rc.httpd č dedicato al server web.

Per un maggiore approfondimento ricordo le pagine del man relative :init, inittab, chkconfig ..

Torna  alla  pagina 1/2


Riccardo Balestieri
Last Update 12/04/2003
mail