\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{lun. mai 31 21:17:33 CEST 2010}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={inittab},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Fichier de configuration de init},
CreationDate={D:20100531211733},
ModDate={D:20100531211733},
Keywords={Linux}
}}
\begin{document}
 
\begin{center}
{\Huge inittab }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Fichier de configuration de init}
 
\vspace{10mm}
 
\hspace{1mm} Une entrée de runlevel a le format suivant: \\
\hspace{1mm} \textbf{id:runlevels:action:process} \\
 
\begin{description} \normalsize
\item[\hspace{1mm} id]{séquence unique de 1 à 4 caractères qui identifie l'entrée dans inittab.}
\item[\hspace{1mm} runlevels]{liste les runlevels pour lesquels l'action spécifiée doit être exécutée}
\item[\hspace{1mm} action]{décrit l'action à exécuter}
\item[\hspace{1mm} process]{spécifie le processus à exécuter. S'il commence avec un '+', init ne créera pas de utmp et wtmp pour ce processus. nécessaire pour les getty qui insistent pour faire leur propre utmp/wtmp. c'est aussi un bug historique.}
\end{description}
 
\hspace{1mm}  Le champ \textbf{runlevels} peut contenir plusieurs caractères pour différents runlevels. Les actions valides sont:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} respawn]{Le processus sera redémarré s'il est terminé (ex getty)}
\item[\hspace{1mm} wait]{Le processus sera démarré une fois en entrant dans le runlevel et init attendra qu'il se termine}
\item[\hspace{1mm} once]{Le processus sera exécuté une fois en entrant dans le runlevel.}
\item[\hspace{1mm} boot]{Le processus sera exécuté au boot Le champs runlevel est ignoré}
\item[\hspace{1mm} bootwait]{Le processus sera exécuté durant le boot, init attendra qu'il se termine(ex : /etc/rc). Le runlevel est ignoré.}
\item[\hspace{1mm} off Ne fait rien]{ondemand Sera exécuté quand le runlevel est appelé, cependant aucun changement de level ne sera exécuté.(les runlevels ondemand sont a, b, et c)}
\item[\hspace{1mm} initdefault]{spécifie le runlevel par défaut après le boot. Le champs process est ignoré}
\item[\hspace{1mm} sysinit]{Le processus sera exécuté durant le boot. Il sera exécuté avant une entrée boot ou bootwait. Le runlevel est ignoré.}
\item[\hspace{1mm} powerwait]{Le processus est exécuté quand le courant s'affaiblit.}
\item[\hspace{1mm} powerfail]{comme powerwait, excepté qu'init n'attend pas que le processus se termine}
\item[\hspace{1mm} powerokwait]{Le processus sera exécuté une fois qu'init est informé que le courant est revenu}
\item[\hspace{1mm} powerfailnow]{Le processus sera exécuté quand la batterie est vide et le courant s'arrête.}
\item[\hspace{1mm} ctrlaltdel]{Le processus sera exécuté quand init recevra le signal SIGINT. généralement en pressant ctrl+alt+del}
\item[\hspace{1mm} kbrequest]{Le processus sera exécuté quand init reçoit un signal depuis une combinaison de touches spécial.}
\end{description}
 
\vspace{1cm}{\huge Exemple simple }
 
\
 
{\ttfamily
id:1:initdefault :\\ rc ::bootwait :/etc/rc\\ 1:1:respawn :/etc/getty 9600 tty1\\ 2:1:respawn :/etc/getty 9600 tty2\\ 3:1:respawn :/etc/getty 9600 tty3\\ 4:1:respawn :/etc/getty 9600 tty4\\
}
\vspace{8mm}
 
\hspace{1mm}  Il exécute /etc/rc durant le boot et lance getty sur tty1 à tty4
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemple plus élaboré }
 
\
 
{\ttfamily
id:2:initdefault :\\ \hspace{2mm}\\ \# script d'initialisation/configuration au moment du boot\\ si ::sysinit :/etc/init.d/rcS\\ \hspace{2mm}\\ \# quoi faire en mode simpleutilisateur\\ :S:wait :/sbin/sulogin\\ \hspace{2mm}\\ \# /etc/init.d execute les scripts S et K pendant le changement de runlevel\\ l0:0:wait :/etc/init.d/rc 0\\ l1:1:wait :/etc/init.d/rc 1\\ l2:2:wait :/etc/init.d/rc 2\\ l3:3:wait :/etc/init.d/rc 3\\ l4:4:wait :/etc/init.d/rc 4\\ l5:5:wait :/etc/init.d/rc 5\\ l6:6:wait :/etc/init.d/rc 6\\ \hspace{2mm}\\ \# quoi faire si ctrl+alt+del sont pressés\\ ca ::ctrlaltdel :/sbin/shutdown -t1 -h now\\ \hspace{2mm}\\ \# Runlevel 2,3 : getty sur les consoles virtuelles\\ \# Runlevel 3 : getty sur le terminal (ttyS0) et le modem (ttyS1)\\ 1:23:respawn :/sbin/getty tty1 VC linux\\ 2:23:respawn :/sbin/getty tty2 VC linux\\ 3:23:respawn :/sbin/getty tty3 VC linux\\ 4:23:respawn :/sbin/getty tty4 VC linux\\ S0:3:respawn :/sbin/getty -L 9600 ttyS0 vt320\\ S1:3:respawn :/sbin/mgetty -x0 -D ttyS1\\
}
\vspace{8mm}
\end{flushleft}
\end{document}
