7.12. Le fichier rc.site

Le fichier facultatif /etc/sysconfig/rc.site contient les paramètres réglés automatiquement pour chaque script de démarrage. Il peut aussi contrôler les valeurs des fichiers hostname, console et clock du répertoire /etc/sysconfig/. Si les variables associées se trouvent à la fois dans ces fichiers distincts et dans rc.site, les valeurs des fichiers spécifiques ont la préséance.

rc.site contient aussi des paramètres pour personnaliser d'autres aspects du processus de démarrage. Le réglage de la variable IPROMPT permettra un lancement sélectif des scripts de démarrage. D'autres options sont décrites dans les commentaires du fichier. La version par défaut du fichier est ci-dessous :

# rc.site
# Optional parameters for boot scripts.

# Distro Information
# These values, if specified here, override the defaults
#DISTRO="Linux From Scratch" # The distro name
#DISTRO_CONTACT="lfs-dev@linuxfromscratch.org" # Bug report address
#DISTRO_MINI="LFS" # Short name used in filenames for distro config

# Define custom colors used in messages printed to the screen

# Please consult `man console_codes` for more information
# under the "ECMA-48 Set Graphics Rendition" section
#
# Warning: when switching from a 8bit to a 9bit font,
# the linux console will reinterpret the bold (1;) to
# the top 256 glyphs of the 9bit font.  This does
# not affect framebuffer consoles

# These values, if specified here, override the defaults
#BRACKET="\\033[1;34m" # Blue
#FAILURE="\\033[1;31m" # Red
#INFO="\\033[1;36m"    # Cyan
#NORMAL="\\033[0;39m"  # Grey
#SUCCESS="\\033[1;32m" # Green
#WARNING="\\033[1;33m" # Yellow

# Use a colored prefix
# These values, if specified here, override the defaults
#BMPREFIX="     "
#SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL}"
#FAILURE_PREFIX="${FAILURE}*****${NORMAL}"
#WARNING_PREFIX="${WARNING} *** ${NORMAL}"

# Interactive startup
#IPROMPT="yes" # Whether to display the interactive boot prompt
#itime="3"    # The amount of time (in seconds) to display the prompt

# The total length of the distro welcome string, without escape codes
#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"

# The total length of the interactive string, without escape codes
#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"

# Set scripts to skip the file system check on reboot
#FASTBOOT=yes

# Skip reading from the console
#HEADLESS=yes

# Write out fsck progress if yes
#VERBOSE_FSCK=no

# Speed up boot without waiting for settle in udev
#OMIT_UDEV_SETTLE=y

# Speed up boot without waiting for settle in udev_retry
#OMIT_UDEV_RETRY_SETTLE=yes

# Skip cleaning /tmp if yes
#SKIPTMPCLEAN=no

# For setclock
#UTC=1
#CLOCKPARAMS=

# For consolelog
#LOGLEVEL=5

# For network
#HOSTNAME=mylfs

# Delay between TERM and KILL signals at shutdown
#KILLDELAY=3

# Optional sysklogd parameters
#SYSKLOGD_PARMS="-m 0"

# Console parameters
#UNICODE=1
#KEYMAP="de-latin1"
#KEYMAP_CORRECTIONS="euro2"
#FONT="lat0-16 -m 8859-15"
#LEGACY_CHARSET=

7.12.1. Personnaliser les scripts de démarrage et d'extinction

Les scripts de démarrage LFS démarrent et arrêtent un système d'une façon très efficace, mais vous pouvez faire quelques bidouillages dans le fichier rc.site pour améliorer encore davantage la vitesse et ajuster les messages selon vos préférences. Pour cela, ajustez les paramètres du fichier /etc/sysconfig/rc.site ci-dessus.

  • Pendant le script de démarrage udev, un appel à udev settle demande du temps pour s'achever. Ce temps peut être ou pas nécessaire pour des périphériques présents dans votre système. Si vous n'avez que des partitions simples et une seule carte ethernet, le processus de démarrage n'aura probablement pas besoin d'attendre cette commande. Pour la sauter, définissez la variable OMIT_UDEV_SETTLE=y.

  • Le script de démarrage udev_retry lance aussi par défaut udev settle. Cette commande n'est nécessaire par défaut que si le répertoire /var est monté séparément. Ceci car la vérification a besoin du fichier /var/lib/hwclock/adjtime. D'autres personnalisations peuvent nécessiter d'attendre qu'udev se termine mais dans beaucoup d'installations, ce n'est pas nécessaire. Sautez la commande en définissant la variable OMIT_UDEV_RETRY_SETTLE=y.

  • Par défaut, les vérifications des systèmes de fichiers sont sans message. Cela peut être vu comme un délai pendant le processus de démarrage. Pour activer la sortie de fsck, définissez la variable VERBOSE_FSCK=y.

  • Lors du redémarrage, il se peut que vous vouliez sauter la vérification du système de fichiers, fsck, complètement. Pour cela, soit créez le fichier /fastboot, soit redémarrez le système avec la commande /sbin/shutdown -f -r now. Inversement, vous pouvez forcer la vérification de tous les systèmes de fichiers en créant /forcefsck ou en lançant shutdown avec le paramètre -F plutôt que -f.

    La définition de la variable FASTBOOT=y désactivera fsck lors du processus de démarrage jusqu'à ce qu'il soit supprimé. Ce n'est pas recommandé de façon permanente.

  • En principe, tous les fichiers du répertoire /tmp sont effacés au moment du démarrage. Selon le nombre de fichiers ou de répertoires présents, cela peut provoquer un délai important dans le processus de démarrage. Pour sauter la suppression de ces fichiers, définissez la variable SKIPTMPCLEAN=y.

  • Lors de l'extinction, le programme init envoie un signal TERM à chaque programme qu'il a démarré (comme agetty), il attend un moment de définition (par défaut, 3 secondes), et il envoie à chaque processus un signal KILL puis attend de nouveau. Ce processus se répète dans le script sendsignals pour tous les processus non terminés par leurs propres scripts. Le délai de init peut être défini en passant un paramètre. Par exemple, pour supprimer le délai dans init, passez le paramètre -t0 lors de l'extinction ou du redémarrage (comme /sbin/shutdown -t0 -r now). Le délai du script sendsignals peut être sauté en définissant le paramètre KILLDELAY=0.