TIP Utiliser les runlevels
Un article de Gentoo Linux Wiki.
|
Terminaux / Shells • CD Live • X • Portage • Système • Systèmes de fichier • Autres |
L'objectif est de pouvoir choisir au démarrage de l'OS de démarrer les services que l'on désire. Je trouve ça particulièrement intéressant sur les portables. Cela permet de choisir si l'on veut démarrer avec X, ou avec le réseau wifi ou bien le réseau filaire.
Voici comment j'ai défini mes runlevels :
- 0 : arrêt du systeme
- 1 : single
- 2 : nonetwork
- 3 : ethernet (avec le réseau filaire et sans X)
- 4 : nowifi (avec X et le reseau filaire)
- 5 : default (avec X et Wifi )
- 6 : reboot
Pour faire cela, nous allons créer et paramétrer les différents runlevels. Il faut créer les répertoires 'ethernet' et 'nowifi' dans '/etc/runlevels/'. Les autres modes existent déjà.
cd /etc/runlevels/ mkdir ethernet mkdir nowifi
En suite, nous devons activer les services que nous désirons dans les différents runlevels. Pour voir tous ceux qui sont activés dans le runlevel 'default', utilisez la commande rc-status :
# rc-status default Runlevel: default sshd [ started ] local [ started ] vixie-cron [ started ] domainname [ started ] metalog [ started ] esound [ started ] splash [ started ] netmount [ started ] hotplug [ started ] alsasound [ started ] xdm [ started ] net.wlan0 [ started ]
Pour configurer le runlevel 'ethernet', nous allons remplacer le service net.wlan0 par net.eth0 et nous ne mettrons pas le service xdm.
rc-update add sshd ethernet rc-update add local ethernet rc-update add vixie-cron ethernet rc-update add domainname ethernet rc-update add metalog ethernet rc-update add esound ethernet rc-update add splash ethernet rc-update add netmount ethernet rc-update add hotplug ethernet rc-update add alsasound ethernet rc-update add net.eth0 ethernet
Pour configurer le runlevel 'nowifi', nous allons faire la même chose que pour le mode ethernet. Mais nous ajouterons aussi le service xdm.
rc-update add sshd nowifi rc-update add local nowifi ..... ..... rc-update add net.eth0 nowifi rc-update add xdm nowifi
Voilà nos runlevels sont configurés. Il nous faut maintenant les associér à leur numéro de runlevel. Pour cela, éditez le fichier /etc/inittab pour qu'il ressemble à ceci :
..... ..... l0:0:wait:/sbin/rc shutdown l1:S1:wait:/sbin/rc single l2:2:wait:/sbin/rc nonetwork l3:3:wait:/sbin/rc ethernet l4:4:wait:/sbin/rc nowifi l5:5:wait:/sbin/rc default l6:6:wait:/sbin/rc reboot #z6:6:respawn:/sbin/sulogin ..... .....
Il ne nous reste plus qu'à configurer le chargeur de boot, pour qu'il nous donne le choix du runlevel au démarrage. Voici un exemple pour grub :
timeout 30 splashimage=(hd0,4)/boot/grub/splash.xpm.gz default 0 fallback 1 title GNU/Linux (default) root (hd0,4) kernel /boot/bzImage root=/dev/hda5 vga=791 5 initrd=/boot/initrd-gentoo-1024x768 title GNU/Linux X et reseau filaire (nowifi) root (hd0,4) kernel /boot/bzImage root=/dev/hda5 vga=791 4 initrd=/boot/initrd-gentoo-1024x768 title GNU/Linux reseau filaire (ethernet) root (hd0,4) kernel /boot/bzImage root=/dev/hda5 vga=791 3 initrd=/boot/initrd-gentoo-1024x768
Pour lilo, vous devez ajouter le numéro du runlevel dans le champ append.
append="vga=791 4"
