SysV: differenze tra le versioni

cambiato avviso, visto che Jessie è ora la LTS e SysV è "legacy"
m (verificata, aggiunta Jessie (in caso si utilizzi SysVinit))
(cambiato avviso, visto che Jessie è ora la LTS e SysV è "legacy")
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Squeeze|Wheezy|Jessie}}
{{Versioni compatibili|Jessie|Stretch|Buster}}
== Struttura ==
== Struttura ==
Debian storicamente ha scelto, come proprio sistema di boot, il SysV, che si distingue per la propria semplicità e potenza.
Debian storicamente aveva scelto come proprio [[init|sistema di init]] il '''SysV''', che si distingue per la propria semplicità e potenza, in maniera analoga a buona parte delle altre distribuzioni GNU/Linux.
Infatti, è basata su degli script sensibili a determinate azioni, che vengono linkati a delle directory predefinite (rappresentanti determinati runlevel ovvero livelli o stati a cui si trova la macchina).
Infatti, è basata su degli script sensibili a determinate azioni, che vengono linkati a delle directory predefinite (rappresentanti determinati [[runlevel]] ovvero livelli o stati a cui si trova la macchina).


A partire da Debian 8 ([[Jessie]]), tale sistema è stato tuttavia rimpiazzato di default da [[systemd]]. Systemd è in grado di leggere gli script in <code>/etc/init.d</code>, ma ignora il file <code>/etc/inittab</code>, per cui tutto ciò che è lì scritto non avrebbe alcun effetto. Per cui questa guida si considera interamente compatibile con Jessie solo installando il pacchetto '''sysvinit-core'''.
Tuattavia a partire da Debian 8 ([[Jessie]]), tale sistema è stato rimpiazzato di default da [[systemd]], il nuovo default nel mondo GNU/Linux. Systemd è comunque in grado di leggere gli script in <code>/etc/init.d</code>, ma ignora il file <code>/etc/inittab</code>, per cui tutto ciò che è lì scritto non avrebbe alcun effetto.


Esaminiamo nel dettaglio la struttura di questo interessante sistema, così da capire meglio cosa avviene esattamente al boot della macchina.
Questa guida si considera interamente compatibile con versioni più recenti di Debian solo installando il pacchetto '''sysvinit-core'''. Per farlo, sostituendo systemd o qualunque altro sistema di init installato, è sufficiente con [[privilegi di amministrazione]]:
<pre>
# apt install sysvinit-core
</pre>
Si tenga a mente però che non tutti i pacchetti potrebbero essere installabili, in particolari quelli che si appoggiano alle librerie di '''systemd'''. Si raccomanda pertanto di partire da un'installazione minima, installando solo l'occorrente, anziché ambienti desktop completi con tutte le loro dipendenze e tutti i pacchetti raccomandati.
 
Esaminiamo ora nel dettaglio la struttura di questo interessante sistema, così da capire meglio cosa avviene esattamente al boot della macchina quando si utilizza tale sistema.


== Gli script di <code>init.d</code> ==
== Gli script di <code>init.d</code> ==
Riga 138: Riga 144:
È possibile disattivare questa caratteristica commentando la riga.
È possibile disattivare questa caratteristica commentando la riga.


Si noti che all'interno di una sessione grafica la sequenza è in genere intercettata dal server grafico e pertanto non avrà effetto. È necessario passare prima a una console virtuale, premendo <code>CTRL-ALT-F1</code>.
Si noti che all'interno di una sessione grafica la sequenza è in genere intercettata dal server grafico e pertanto non avrà effetto. È necessario passare prima a un terminale virtuale, premendo <code>CTRL-ALT-F1</code>.


==== Pressione di <code>ALT + FrecciaSu</code> ====
==== Pressione di <code>ALT + FrecciaSu</code> ====
Riga 147: Riga 153:
Decommentare la riga, rimuovendo il carattere <code>#</code> prima di <code>kb1</code>, e scrivere il percorso assoluto del comando da eseguire quando si preme <code>ALT + FrecciaSu</code>.
Decommentare la riga, rimuovendo il carattere <code>#</code> prima di <code>kb1</code>, e scrivere il percorso assoluto del comando da eseguire quando si preme <code>ALT + FrecciaSu</code>.


Come per <code>CTRL-ALT-CANC</code> questa sequenza è intercettata dal server grafico all'interno di una sessione grafica. È necessario prima passare a una console virtuale.
Come per <code>CTRL-ALT-CANC</code> questa sequenza è intercettata dal server grafico all'interno di una sessione grafica. È necessario prima passare a un terminale virtuale.


==== Gestione delle Console ====
==== Gestione delle Console ====
Riga 190: Riga 196:
==== Sintassi ====
==== Sintassi ====
La sintassi del comando è suddivisibile in tre varianti:
La sintassi del comando è suddivisibile in tre varianti:
<pre>
<pre>
update-rc.d [-n] [-f] name remove
# update-rc.d [-n] [-f] name remove
</pre>
</pre>
consente la rimozione di tutti i link nei runlevel relativi al demone <code>''name''</code>
consente la rimozione di tutti i link nei runlevel relativi al demone <code>''name''</code>
Riga 200: Riga 205:


<pre>
<pre>
update-rc.d [-n] name defaults [NN | NN-start NN-stop]
# update-rc.d [-n] name defaults [NN | NN-start NN-stop]
</pre>
</pre>
crea il link di avvio allo script <code>'''/etc/init.d/''name''''''</code> secondo i [[#Valori di default | valori di default]]. È possibile sovrascrivere l'ordine con cui verrà eseguito lo script specificando le due cifre (<code>''NN''</code>), inoltre è possibile fornire valori diversi sia per l'avvio (<code>''NN-start''</code>) che per l'arresto (<code>''NN-stop''</code>).
crea il link di avvio allo script <code>'''/etc/init.d/''name''''''</code> secondo i [[#Valori di default | valori di default]]. È possibile sovrascrivere l'ordine con cui verrà eseguito lo script specificando le due cifre (<code>''NN''</code>), inoltre è possibile fornire valori diversi sia per l'avvio (<code>''NN-start''</code>) che per l'arresto (<code>''NN-stop''</code>).


<pre>
<pre>
update-rc.d [-n] name start|stop NN runlevel runlevel ...  .  start|stop NN runlevel runlevel ...  . ...
# update-rc.d [-n] name start|stop NN runlevel runlevel ...  .  start|stop NN runlevel runlevel ...  . ...
</pre>
</pre>
crea il link di avvio|arresto allo script <code>''name''</code> specificando l'ordine (<code>''NN''</code>) e il/i runlevel. Il carattere <code>''.''</code> separa dichiarazioni multiple.
crea il link di avvio|arresto allo script <code>''name''</code> specificando l'ordine (<code>''NN''</code>) e il/i runlevel. Il carattere <code>''.''</code> separa dichiarazioni multiple.
Riga 215: Riga 219:
Link per l'avvio:
Link per l'avvio:
<pre>
<pre>
update-rc.d xdm start 99 2 3 4 5
# update-rc.d xdm start 99 2 3 4 5
</pre>
</pre>
Link per l'arresto:
Link per l'arresto:
<pre>
<pre>
update-rc.d xdm stop 01 0 1 6
# update-rc.d xdm stop 01 0 1 6
</pre>
</pre>


Concatenati:
Concatenati:
<pre>
<pre>
update-rc.d xdm start 99 2 3 4 5 . stop 01 0 1 6
# update-rc.d xdm start 99 2 3 4 5 . stop 01 0 1 6
</pre>
</pre>


==== Rimozione di un link ====
==== Rimozione di un link ====
<pre>
<pre>
update-rc.d -f xdm remove
# update-rc.d -f xdm remove
</pre>
</pre>


Riga 235: Riga 239:
Valori di default:
Valori di default:
<pre>
<pre>
update-rc.d xdm defaults
# update-rc.d xdm defaults
</pre>
</pre>


Valori di Default solo relativamente ai runlevel (impostando l'ordine di avvio a 99 e di arresto a 01)
Valori di Default solo relativamente ai runlevel (impostando l'ordine di avvio a 99 e di arresto a 01)
<pre>
<pre>
update-rc.d xdm defaults 99-start 01-stop
# update-rc.d xdm defaults 99-start 01-stop
</pre>
</pre>


Riga 270: Riga 274:


[[Immagine:bum2.png|thumb|center|Screenshot di BUM]]
[[Immagine:bum2.png|thumb|center|Screenshot di BUM]]
===sysvconfig===
Sysvconfig è un tool molto comodo e funzionale, che permette di modificare i vari runlevel visualizzandoli in una comoda griglia. Una volta posizionati sulla casella da modificare è sufficiente cancellarne il contenuto con il tasto <code>[canc]</code> e inserire l'indicazione <code>Sxx</code> o <code>Kxx</code> (dove il numero <code>''xx''</code> rappresenta l'ordine con il quale deve essere eseguito lo script). È disponibile solamente più per Lenny.
[[Immagine:Sysvconfig.png|thumb|center|Screenshot di sysvconfig]]
=== ksysv ===
Un programma di gestione dei runlevel basato sulle librerie QT ed integrato in KDE.
Al primo avvio viene chiesto di specificare il sistema sul quale viene eseguito (Linux -> Debian GNU/Linux).
La schermata che ci viene proposta è comoda e ben organizzata: a sinistra abbiamo la lista dei servizi disponibili. A seguire la lista dei runlevel (colonne) suddivisi in due celle: in alto i servizi da avviare, in basso quelli da arrestare. Cliccando su un servizio in un runlevel si possono modificare le impostazioni. Per inserire un servizio è sufficiente trascinarlo nel runlevel designato, come per cancellarlo da un runlevel è sufficiente spostarlo nel cestino ;) . È disponibile solamente più per Lenny.
[[Immagine:Ksysv.png|thumb|center|Screenshot di KsysV]]


== <code>rc.local</code> e <code>rc.local_shutdown</code> ==
== <code>rc.local</code> e <code>rc.local_shutdown</code> ==
Alcuni distribuzioni (Slackware per esempio) utilizzano i file <code>/etc/rc.local</code> e <code>/etc/rc.local_shutdown</code> per dare all'amministratore la possibilità di eseguire dei comandi specifici per un certo sistema all'avvio e allo spegnimento della macchina.
Alcuni distribuzioni (Slackware per esempio) utilizzano i file <code>/etc/rc.local</code> e <code>/etc/rc.local_shutdown</code> per dare all'amministratore la possibilità di eseguire dei comandi specifici per un certo sistema all'avvio e allo spegnimento della macchina.


Riga 319: Riga 308:
</pre>
</pre>


Per fare sì che questo venga eseguito ad ogni avvio aggiungetelo all'elenco dei servizi con il vostro tool preferito o con il comando:
Per fare sì che questo venga eseguito ad ogni avvio, rendetelo eseguibile:
<pre>
# chmod 755 /etc/init.d/local
</pre>


E aggiungetelo all'elenco dei servizi con il vostro tool preferito, per esempio con il comando:
<pre>
<pre>
# update-rc.d local start 98 S 1 2 3 4 5 .
# update-rc.d local start 98 S 1 2 3 4 5 .
Riga 326: Riga 319:


Per maggiori informazioni, sulla creazione di un servizio, si rimanda alla guida: [[Gestione e creazione di servizi in Debian]].
Per maggiori informazioni, sulla creazione di un servizio, si rimanda alla guida: [[Gestione e creazione di servizi in Debian]].


{{Autori
{{Autori
Riga 332: Riga 324:
|Estesa_da=
|Estesa_da=
|Verificata_da=
|Verificata_da=
:[[Utente:HAL 9000|HAL 9000]] 22:10, 30 mag 2015 (CEST)
:[[Utente:HAL 9000|HAL 9000]] 14:57, 21 lug 2019 (CEST)
|Numero_revisori=1
|Numero_revisori=1
}}
}}


[[Categoria:Boot]]
[[Categoria:Boot]]
3 581

contributi