Difference between revisions of "SysVinit (Italiano)"

From ArchWiki
Jump to: navigation, search
(inittab)
m (interlink corretti)
(24 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
[[Category:Boot process (Italiano)]]
 
[[Category:Boot process (Italiano)]]
 
[[Category:Daemons and system services (Italiano)]]
 
[[Category:Daemons and system services (Italiano)]]
[[Category:System administration (Italiano)]]
 
 
[[Category:System recovery (Italiano)]]
 
[[Category:System recovery (Italiano)]]
{{i18n|Init and inittab}}
+
[[el:Init and inittab]]
{{translateme}}
+
[[en:SysVinit]]
{{Nota|Questo articolo è in fase di traduzione. Seguite per ora le istruzioni della versione inglese.}}
+
[[es:SysVinit]]
 +
[[zh-CN:Init and inittab]]
 +
'''init''' è il primo processo che viene eseguito una volta che il kernel Linux è stato caricato. Il programma di init di default usato da Arch è {{ic|/sbin/init}} ed è fornito dal pacchetto {{Pkg|sysvinit}} o {{pkg|systemd-sysvcompact}} (di default sulle nuove installazioni, vedere [[systemd (Italiano)|systemd]]). La parola {{ic|'''init'''}} in questo articolo si riferirà a {{ic|sysvinit}}.
  
'''init''' è il primo processo che viene eseguito una volta che il kernel Linux è stato caricato. Il programma di init di default usato da Arch è {{Filename|/sbin/init}} ed è fortniro dal pacchetto {{Package Official|sysvinit}}. La parola '''init''' in questo articolo si riferirà a sysvinit.
+
'''inittab''' è il file di configurazione dell'avvio per {{ic|init}} e si trova in {{ic|/etc}}. Esso contiene le cartelle per {{ic|init}} o quali programmi o script eseguire quando si entra in uno specifico runlervel.
  
'''inittab''' è il file di configurazione dell'avvio per init e si trova in {{Filename|/etc}}. Esso contiene le cartelle per init o quali programmi o script eseguire quando si entra in uno specifico runlervel.
+
{{Tip|Consultare {{ic|man 5 inittab}} e {{ic|man 8 init}} per una descrizione più completa e formale.}}
  
{{Tip|Consultare {{Codeline|man 5 inittab}} e {{Codeline|man 8 init}} per una descrizione più comleta e formale.}}
+
{{Tip|Sebbene Arch utilizzi {{ic|init}}, la maggior parte del lavoro viene delegato ai [[#Principali Script di Boot|principali script di boot]]. Questo articolo tratterà principalmente {{ic|init}} ed {{ic|inittab}}; per maggiori informazioni sul processo di avvio di Arch consultare [[Arch Boot Process (Italiano)|Arch Boot Process]].}}
 
+
{{Tip|Sebbene Arch utilizzi init, la maggiorparte del lavoro viene delegato ai [[#Principali Script di Boot|principali script di boot]]. Questo articolo traterà principalmente init ed inittab; per maggiori informazioni sul processo di avvio di Arch consultare [[Arch Boot Process (Italiano)|Arch Boot Process]].}}
+
 
+
==Parametri del kernel correlati==
+
 
+
Per utilizzare un altro programma di init (es. [[systemd]]), aggiungere '''init=/bin/systemd''' o simile alla riga del kernel in [[GRUB (Italiano)|GRUB]]. Per cambiare il runlevel in cui il sistema effettua il boot, semplicemente aggiungere il runlevel desiderato '''n''' alla riga del kernel. Un comune uso di questo può essere trovato in [[Start_X_at_boot (Italiano)#/etc/inittab]]. Notare se si utilizza un programma di init diverso da sysvinit, il parametro del runlevel potrebbe essere ignorato.
+
  
 
==Panoramica di init e inittab==
 
==Panoramica di init e inittab==
  
init è sempre il processso 1 ed, all'infuori della festione dell'area di swap, è il processo genitore per '''tutti''' gli altri processi. Può essere notato meglio quale ruolo svolge init nella gerarchia dei processi del proprio sistema usando il comando {{Codeline|pstree}}:
+
{{ic|init}} è sempre il processo con PID 1 ed all'infuori della gestione dell'area di swap, è il processo genitore per '''tutti''' gli altri processi. Può essere notato meglio il ruolo che svolge init nella gerarchia dei processi del proprio sistema usando il comando {{ic|pstree}}:
  
{{Command|pstree -Ap|<nowiki>
+
{{hc|$ pstree -Ap|<nowiki>
 
init(1)-+-acpid(3432)
 
init(1)-+-acpid(3432)
 
         |-crond(3423)
 
         |-crond(3423)
Line 36: Line 31:
 
</nowiki>}}
 
</nowiki>}}
  
Oltre alle comuni inizializzazioni del sistema (come suggerisce il nome), init si occupa del riavvio, dello spengimento e del avvio in recovery mode (single-user-mode). Per supportare tutto questo inittab raggruppa queste voci in diversi '''runlevel'''. I runlevel usati da Arch sono 0 per lo spengimento, 1 (oppure S che è un suo alias) per il single-user-mode, 3 per il normale boot (multi-user-mode), 5 per [[Xorg (Italiano)|X]] e 6 per il riavvio. Altre distribuzioni possono adottare altre convenzioni, ma l'uso dei runlevel 0, 1 e 6 è universale.
+
Oltre alle comuni inizializzazioni di sistema (come suggerisce il nome), {{ic|init}} si occupa del riavvio, dello spegnimento e del avvio in recovery mode (single-user-mode). Per supportare tutto questo il file {{ic|inittab}} raggruppa queste modalità in diversi '''runlevel'''. I runlevel usati da Arch sono 0 per lo spegnimento, 1 (oppure S che è un suo alias) per il single-user-mode, 3 per il normale boot (multi-user-mode), 5 per [[Xorg (Italiano)|X]] e 6 per il riavvio. Altre distribuzioni possono adottare altre convenzioni, ma l'uso dei runlevel 0, 1 e 6 è universale.
  
 +
Al momento dell'esecuzione, {{ic|init}} scansiona {{ic|inittab}} ed effettua le appropriate azioni. Una voce di {{ic|inittab}} ha questa forma:
  
Al momento dell'esecuzione, init scansiona inittab ed effettua le appropriate azioni. Una voce di inittab ha questa forma:
+
{{bc|
 
+
<pre>
+
 
id:runlevels:action:process
 
id:runlevels:action:process
</pre>
+
}}
  
Dove {{Codeline|id}} è un identificatore univoco per la voce (solo un nome, non influisce su init), e {{Codeline|runlevels}} è una stringa (non delimitata) di runlevel. Se il runlevel in cui entra init compare in {{Codeline|runlevels}}, allora {{Codeline|action}} verra svolta, eseguendo {{Codeline|process}}. Alcune {{Codeline|action}} speciali potrebbero portare init ad ignorare {{Codeline|runlevels}} ed adottare un corrispondente metodo. Maggiori spiegazioni seguono nella sezione successiva.
+
Dove {{ic|id}} è un identificatore univoco per la voce (solo un nome, non influisce su init), e {{ic|runlevels}} è una stringa (non delimitata) di runlevel. Se il runlevel in cui entra {{ic|init}} compare in {{ic|runlevels}}, allora {{ic|action}} verrà svolta, eseguendo {{ic|process}}. Alcune {{ic|action}} speciali potrebbero portare {{ic|init}} ad ignorare {{ic|runlevels}} ed adottare un corrispondente metodo. Maggiori spiegazioni seguono nella sezione successiva.
  
 
==Cambiare runlevel==
 
==Cambiare runlevel==
Dopo che il sistema è stato avviato, è possibile invocare {{Codeline|telinit n}} per dire ad init di cambiare il runlevel ad {{Codeline|n}}. init quindi legge inittab e "confronterà il runlevel {{Codeline|n}} con quello attuale - effettuando il kill dei processi non presenti nel nuovo runlevel e svolgendo le azioni non presenti nel vecchio runlevel. I processi presenti in entrambi i runlevel rimarranno invariati. La procedura di kill dei procsessi attualmente è un poco complessa; per maggiori informazioni e dettagli tecnici consultare la pagina di manuale di init.x; again, technical details can be found in the init manpage.
 
  
init non consulta inittab. Sarà necessario invocare {{Codeline|telinit}} esplicitamente per applicare le modifiche di inittab. Il comando {{Codeline|telinit q}} farà si che init riesamini inittab ma non cambierà runlevel.
+
===Attraverso il Boot Loader===
 +
 
 +
Per cambiare il runlevel tramite la configurazione del proprio boot loader semplicemente aggiungere sulla stessa riga del kernel il numero del runlevel desiderato {{ic|n}}. Un'applicazione comune di questo metodo è [[Far partire X al boot#inittab]]. Per avviare sul runlevel desiderato aggiungere il relativo numero ai [[kernel parameters|parametri del kernel]] (es {{ic|3}} per il runlevel 3).
 +
 
 +
Se si usa un altro programma di init (ad esempio [[Systemd (Italiano)|systemd]]), aggiungere '''init=/bin/systemd''' o qualcosa di simile alla riga del kernel.
 +
 
 +
{{Nota|Se si utilizza un init diverso da sysvinit, il parametro runlevel potrebbe essere ignorato.}}
 +
 
 +
===Dopo il boot===
 +
Dopo che il sistema è stato avviato, è possibile invocare {{ic|telinit n}} per dire ad {{ic|init}} di cambiare il runlevel ad {{ic|'''n'''}}. {{ic|init}} quindi leggerà {{ic|inittab}} e "confronterà" il runlevel {{ic|'''n'''}} con quello attuale - effettuando il kill dei processi non presenti nel nuovo runlevel e svolgendo le azioni non presenti nel vecchio runlevel. I processi presenti in entrambi i runlevel rimarranno invariati. La procedura di kill dei processi attualmente è un poco complessa; per maggiori informazioni e dettagli tecnici consultare la pagina di manuale di init.
 +
 
 +
{{ic|init}} non riesaminerà {{ic|inittab}}. Sarà necessario invocare {{ic|telinit}} esplicitamente per applicare le modifiche apportate ad {{ic|inittab}}. Il comando {{ic|telinit q}} farà si che {{ic|init}} riesamini {{ic|inittab}} ma non cambierà runlevel.
  
 
==inittab==
 
==inittab==
In questa sezione saranno esaminate le voci comuni di inittab, nel solito ordine in ci appaiono nel file inittab di default usado da Arch. Successivamente verranno fatti alcuni esempi per aiutare a creare le proprie voci di inittab.
+
In questa sezione saranno esaminate le voci comuni di {{ic|inittab}}, nel solito ordine in cui appaiono nel file di default usato da Arch. Successivamente verranno fatti alcuni esempi per aiutare a creare le proprie voci di {{ic|inittab}}.
  
{{Attenzione|Testare sempre il file {{Filename|/etc/inittab}} modificato usando il comando {{Codeline|telinit q}} prima di effettuare un riavvio, oppure eventuali errori di sintassi potrebbero impedire l'avvio del sistema.}}
+
{{Attenzione|Testare sempre il file {{ic|/etc/inittab}} modificato usando il comando {{ic|telinit q}} prima di effettuare un riavvio, oppure eventuali errori di sintassi potrebbero impedire l'avvio del sistema.}}
  
 
===Default Runlevel===
 
===Default Runlevel===
Il runlevel di default è il numero 3. Decommentare o aggiungere questo se si preferisce avviare il sitema nel runlevel 5 (che è comunemente usato per avviare X) come default:
+
Il runlevel di default è il numero 3. De commentare o aggiungere questo se si preferisce avviare il sistema nel runlevel 5 (che è comunemente usato per avviare X) come default:
  
<pre>
+
{{bc|
 
id:5:initdefault:
 
id:5:initdefault:
</pre>
+
}}
  
 
===Principali Script di Boot===
 
===Principali Script di Boot===
 
Questi sono gli script di init principali di Arch.
 
Questi sono gli script di init principali di Arch.
  
<pre>
+
{{bc|
 
rc::sysinit:/etc/rc.sysinit
 
rc::sysinit:/etc/rc.sysinit
 
rs:S1:wait:/etc/rc.single
 
rs:S1:wait:/etc/rc.single
 
rm:2345:wait:/etc/rc.multi
 
rm:2345:wait:/etc/rc.multi
 
rh:06:wait:/etc/rc.shutdown
 
rh:06:wait:/etc/rc.shutdown
</pre>
+
}}
  
 
===Avvio in Single User===
 
===Avvio in Single User===
A volte il kernel può fallire ad avviarsi, a causa di un file system corrotto o di un disco rotto, file chiave mancanti eccetera. In questo caso la propria immagine di init puà automaticamente entrare in '''single-user mode''' che permette di effettuare il login come root ed usa {{Filename|/sbin/sulogin}} invece di {{Filename|/sbin/login}} per controllare il processo di login. Si può entrare in single-user mode aggiungendo la lettera '''S''' alla linea di comando del kernel nella configurazione di [[GRUB (Italiano)|GRUB]], [[LILO (Italiano)|LILO]], o syslinux. Se si vuole eseguire qualcosa di diverso da {{Codeline|sulogin}}, specificarlo in questa voce.
+
A volte il kernel può fallire ad avviarsi, a causa di un file system corrotto o di un disco rotto, file chiave mancanti eccetera. In questo caso la propria immagine di init può automaticamente entrare in '''single-user mode''' che permette di effettuare il login come root ed usa {{ic|/sbin/sulogin}} invece di {{ic|/sbin/login}} per controllare il processo di login. Si può entrare in single-user mode aggiungendo la lettera {{ic|S}} alla linea di comando del kernel nella configurazione di [[GRUB Legacy (Italiano)|GRUB Legacy]], [[GRUB2 (Italiano)|GRUB2]] [[LILO|LILO]], o [[syslinux]]. Se si vuole eseguire qualcosa di diverso da {{ic|sulogin}}, specificarlo in questa voce.
<pre>
+
{{bc|
 
su:S:wait:/sbin/sulogin -p
 
su:S:wait:/sbin/sulogin -p
</pre>
+
}}
  
===Gettys and Login===
+
===Gettys e Login===
These are crucial entries that run the [[getty]]s on your terminals. Most default configurations will have several gettys running on ttys1-6 which is what pops up on your screen with the login prompt. Also see openvt, chvt, stty, and ioctl.
+
Queste sono le voci fondamentali, esse eseguono le [[getty]] nei terminali. Molte configurazioni di default avranno le getty eseguite sulle {{ic|ttys1-6}} che effettueranno la visualizzazione della richiesta di login. Vedere anche {{ic|openvt, chvt, stty}} ed {{ic|ioctl}}
<pre>
+
{{bc|
 
c1:234:respawn:/sbin/agetty 9600 tty1 xterm-color
 
c1:234:respawn:/sbin/agetty 9600 tty1 xterm-color
 
c5:5:respawn:/sbin/agetty 57600 tty2 xterm-256color
 
c5:5:respawn:/sbin/agetty 57600 tty2 xterm-256color
</pre>
+
}}
  
 
===Ctrl-Alt-Del===
 
===Ctrl-Alt-Del===
Quando viene premuta la sequenza di tasti speciali {{Keypress|CTRL}}+{{Keypress|ALT}}+{{Keypress|DEL}}, questa voce determina l'azione che verrà eseguita.
+
Quando viene premuta la sequenza di tasti speciali {{Keypress|Ctrl+Alt+Del}}, questa voce determina l'azione che verrà eseguita.
<pre>
+
{{bc|
 
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
 
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
</pre>
+
}}
  
===X Programs===
+
===Programmi X===
If you aren't afraid to debug, you can figure out how to start all sorts of programs from inittab. One useful type of program is to start your login manager when the runlevel is 5, multi-user-x-mode. In the following example you can see how to start slim when entering runlevel 5.
+
Se non si è interessati al debug, è possibile avviare ogni tipo di applicazione tramite {{ic|inittab}}. Un programma utile da avviare è il login manager desiderato quando si entra nel runlevel 5, multi-user-x-mode. Nel seguente esempio si può vedere come avviare [[SLiM (Italiano)|slim]] entrando nel runlevel 5.
<pre>
+
{{bc|
 
x:5:respawn:/usr/bin/slim >/dev/null 2>&1
 
x:5:respawn:/usr/bin/slim >/dev/null 2>&1
 
#x:5:respawn:/usr/bin/xdm -nodaemon -confi /etc/X11/xdm/archlinux/xdm-config
 
#x:5:respawn:/usr/bin/xdm -nodaemon -confi /etc/X11/xdm/archlinux/xdm-config
</pre>
+
}}
  
 
+
===Script Power-Sensing===
===Power-Sensing Scripts===
+
{{ic|Init}} può comunicare con gli UPS (gruppi di continuità) ed eseguire processi in base allo stato del'UPS. Ecco alcuni esempi:
Init can communicate with your UPS device and execute processes based on the status of the UPS. Here are some examples:
+
{{bc|
<pre>
+
 
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
 
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
 
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
 
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
</pre>
+
}}
  
===Custom Keyboard Request===
+
===Combinazioni di tasti personalizzati===
The following line adds a custom function for when a special key sequence is pressed. You can modify this special key sequence to be anything you like, similar to a ctrl-alt-del.
+
Le seguenti linee aggiungono funzioni personalizzate quando una sequenza di tasti speciali vengono premuti. Si possono modificare queste sequenze per effettuare ciò che si preferisce, seguendo la sintassi di [[#Ctrl-Alt-Del|ctrl-alt-del]]
<pre>
+
{{bc|
 
kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"
 
kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"
</pre>
+
}}
  
====Trigger the kbrequest====
+
====Sollevare una kbrequest====
You can trigger the special key sequence '''kbrequest''' by sending the WINCH signal to the init process (1) as root (via sudo). In this example, the command:
+
E' possibile simulare la sequenza speciale di tasti '''kbrequest''' inviando il segnale WINCH al processo di init(1) come root (tramite sudo). In questo esempio, il comando:
 
  kill -WINCH 1
 
  kill -WINCH 1
Causes wall to write to all ttys:
+
causa la scrittura da parte di {{ic|wall}} su tutti i tty di:
<pre>
+
{{bc|
 
Broadcast message from root@askapachehost (console) (Wed Oct 27 14:02:26 2010):   
 
Broadcast message from root@askapachehost (console) (Wed Oct 27 14:02:26 2010):   
 
Keyboard Request -- edit /etc/inittab to customize
 
Keyboard Request -- edit /etc/inittab to customize
</pre>
+
}}
  
==See Also==
+
==Vedere Anche==
*[[Start X at boot]]
+
*[[Start X at boot (Italiano)|Avviare X all'avvio del sistema]]
*[[Automatically login some user to a virtual console on startup]]
+
*[[Automatic login to virtual console (Italiano)|Login automatico in una console virtuale]]
*[[Display Manager]]
+
*[[Display Manager (Italiano)|Display Manager]]
 
*[[Disable Clearing of Boot Messages]]
 
*[[Disable Clearing of Boot Messages]]
*[[xinitrc]]
+
*[[xinitrc (Italiano)|il file ~/.xinitrc]]
*[[slim]]
+
*[[SLiM (Italiano)|SLiM]]
 +
 
 +
==Link Esterni==
  
==External Links==
 
 
* [http://en.wikipedia.org/wiki/Init Wikipedia: Init]
 
* [http://en.wikipedia.org/wiki/Init Wikipedia: Init]
* [http://www.linux-tutorial.info/modules.php?name=MContent&pageid=65 Linux Knowledge Base and Tutorial. Run Levels.]
+
* [http://www.linux-tutorial.info/modules.php?name=MContent&pageid=65 Conoscenze di base di Linux e turorial. Runlevel.]
* [http://www.linux.com/articles/114107 Linux.com. Introduction to runlevels and inittab]
+
* [http://www.linux.com/articles/114107 Linux.com. Introduzione ai runlevel ed inittab(inglese)]
* [http://www.linux.com/news/enterprise/systems-management/8116-an-introduction-to-services-runlevels-and-rcd-scripts Linux.com. An introduction to services, runlevels, and rc.d scripts.]
+
* [http://www.linux.com/news/enterprise/systems-management/8116-an-introduction-to-services-runlevels-and-rcd-scripts Linux.com. Una introduzione ai servizi, runlevel, ed agli script rc.d.]

Revision as of 16:57, 1 November 2012

init è il primo processo che viene eseguito una volta che il kernel Linux è stato caricato. Il programma di init di default usato da Arch è /sbin/init ed è fornito dal pacchetto sysvinit o systemd-sysvcompact (di default sulle nuove installazioni, vedere systemd). La parola init in questo articolo si riferirà a sysvinit.

inittab è il file di configurazione dell'avvio per init e si trova in /etc. Esso contiene le cartelle per init o quali programmi o script eseguire quando si entra in uno specifico runlervel.

Tip: Consultare man 5 inittab e man 8 init per una descrizione più completa e formale.
Tip: Sebbene Arch utilizzi init, la maggior parte del lavoro viene delegato ai principali script di boot. Questo articolo tratterà principalmente init ed inittab; per maggiori informazioni sul processo di avvio di Arch consultare Arch Boot Process.

Panoramica di init e inittab

init è sempre il processo con PID 1 ed all'infuori della gestione dell'area di swap, è il processo genitore per tutti gli altri processi. Può essere notato meglio il ruolo che svolge init nella gerarchia dei processi del proprio sistema usando il comando pstree:

$ pstree -Ap
init(1)-+-acpid(3432)
        |-crond(3423)
        |-dbus-daemon(3469)
        |-gpm(3485)
        |-mylogin(3536)
        |-ngetty(3535)---login(3954)---zsh(4043)---pstree(4326)
        |-polkitd(4033)---{polkitd}(4035)
        |-syslog-ng(3413)---syslog-ng(3414)
        `-udevd(643)-+-udevd(3194)
                     `-udevd(3218)

Oltre alle comuni inizializzazioni di sistema (come suggerisce il nome), init si occupa del riavvio, dello spegnimento e del avvio in recovery mode (single-user-mode). Per supportare tutto questo il file inittab raggruppa queste modalità in diversi runlevel. I runlevel usati da Arch sono 0 per lo spegnimento, 1 (oppure S che è un suo alias) per il single-user-mode, 3 per il normale boot (multi-user-mode), 5 per X e 6 per il riavvio. Altre distribuzioni possono adottare altre convenzioni, ma l'uso dei runlevel 0, 1 e 6 è universale.

Al momento dell'esecuzione, init scansiona inittab ed effettua le appropriate azioni. Una voce di inittab ha questa forma:

id:runlevels:action:process

Dove id è un identificatore univoco per la voce (solo un nome, non influisce su init), e runlevels è una stringa (non delimitata) di runlevel. Se il runlevel in cui entra init compare in runlevels, allora action verrà svolta, eseguendo process. Alcune action speciali potrebbero portare init ad ignorare runlevels ed adottare un corrispondente metodo. Maggiori spiegazioni seguono nella sezione successiva.

Cambiare runlevel

Attraverso il Boot Loader

Per cambiare il runlevel tramite la configurazione del proprio boot loader semplicemente aggiungere sulla stessa riga del kernel il numero del runlevel desiderato n. Un'applicazione comune di questo metodo è Far partire X al boot#inittab. Per avviare sul runlevel desiderato aggiungere il relativo numero ai parametri del kernel (es 3 per il runlevel 3).

Se si usa un altro programma di init (ad esempio systemd), aggiungere init=/bin/systemd o qualcosa di simile alla riga del kernel.

Nota: Se si utilizza un init diverso da sysvinit, il parametro runlevel potrebbe essere ignorato.

Dopo il boot

Dopo che il sistema è stato avviato, è possibile invocare telinit n per dire ad init di cambiare il runlevel ad n. init quindi leggerà inittab e "confronterà" il runlevel n con quello attuale - effettuando il kill dei processi non presenti nel nuovo runlevel e svolgendo le azioni non presenti nel vecchio runlevel. I processi presenti in entrambi i runlevel rimarranno invariati. La procedura di kill dei processi attualmente è un poco complessa; per maggiori informazioni e dettagli tecnici consultare la pagina di manuale di init.

init non riesaminerà inittab. Sarà necessario invocare telinit esplicitamente per applicare le modifiche apportate ad inittab. Il comando telinit q farà si che init riesamini inittab ma non cambierà runlevel.

inittab

In questa sezione saranno esaminate le voci comuni di inittab, nel solito ordine in cui appaiono nel file di default usato da Arch. Successivamente verranno fatti alcuni esempi per aiutare a creare le proprie voci di inittab.

Attenzione: Testare sempre il file /etc/inittab modificato usando il comando telinit q prima di effettuare un riavvio, oppure eventuali errori di sintassi potrebbero impedire l'avvio del sistema.

Default Runlevel

Il runlevel di default è il numero 3. De commentare o aggiungere questo se si preferisce avviare il sistema nel runlevel 5 (che è comunemente usato per avviare X) come default:

id:5:initdefault:

Principali Script di Boot

Questi sono gli script di init principali di Arch.

rc::sysinit:/etc/rc.sysinit
rs:S1:wait:/etc/rc.single
rm:2345:wait:/etc/rc.multi
rh:06:wait:/etc/rc.shutdown

Avvio in Single User

A volte il kernel può fallire ad avviarsi, a causa di un file system corrotto o di un disco rotto, file chiave mancanti eccetera. In questo caso la propria immagine di init può automaticamente entrare in single-user mode che permette di effettuare il login come root ed usa /sbin/sulogin invece di /sbin/login per controllare il processo di login. Si può entrare in single-user mode aggiungendo la lettera S alla linea di comando del kernel nella configurazione di GRUB Legacy, GRUB2 LILO, o syslinux. Se si vuole eseguire qualcosa di diverso da sulogin, specificarlo in questa voce.

su:S:wait:/sbin/sulogin -p

Gettys e Login

Queste sono le voci fondamentali, esse eseguono le getty nei terminali. Molte configurazioni di default avranno le getty eseguite sulle ttys1-6 che effettueranno la visualizzazione della richiesta di login. Vedere anche openvt, chvt, stty ed ioctl

c1:234:respawn:/sbin/agetty 9600 tty1 xterm-color
c5:5:respawn:/sbin/agetty 57600 tty2 xterm-256color

Ctrl-Alt-Del

Quando viene premuta la sequenza di tasti speciali Template:Keypress, questa voce determina l'azione che verrà eseguita.

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

Programmi X

Se non si è interessati al debug, è possibile avviare ogni tipo di applicazione tramite inittab. Un programma utile da avviare è il login manager desiderato quando si entra nel runlevel 5, multi-user-x-mode. Nel seguente esempio si può vedere come avviare slim entrando nel runlevel 5.

x:5:respawn:/usr/bin/slim >/dev/null 2>&1
#x:5:respawn:/usr/bin/xdm -nodaemon -confi /etc/X11/xdm/archlinux/xdm-config

Script Power-Sensing

Init può comunicare con gli UPS (gruppi di continuità) ed eseguire processi in base allo stato del'UPS. Ecco alcuni esempi:

pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

Combinazioni di tasti personalizzati

Le seguenti linee aggiungono funzioni personalizzate quando una sequenza di tasti speciali vengono premuti. Si possono modificare queste sequenze per effettuare ciò che si preferisce, seguendo la sintassi di ctrl-alt-del

kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"

Sollevare una kbrequest

E' possibile simulare la sequenza speciale di tasti kbrequest inviando il segnale WINCH al processo di init(1) come root (tramite sudo). In questo esempio, il comando:

kill -WINCH 1

causa la scrittura da parte di wall su tutti i tty di:

Broadcast message from root@askapachehost (console) (Wed Oct 27 14:02:26 2010):  
Keyboard Request -- edit /etc/inittab to customize

Vedere Anche

Link Esterni