#! /bin/sh # # rc.6 Ce fichier est execute par init quand il passe au # runlevel (niveau d'execution) 0 (halt) ou runlevel 6 # (redemarrage). Il tue tous les processus, demonte les # systemes de fichiers et soit stoppe soit redemarre. # # Version: @(#)/etc/rc.d/rc.6 1.50 1994-01-15 # # Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org> # Modified by: Patrick J. Volkerding, <volkerdi@ftp.cdrom.com> # Modified by: Michael A. Robinton, <michael@bzs.org> for RAID shutdown # Positionner le chemin. PATH=/sbin:/etc:/bin:/usr/bin # Mettre en mode saut de ligne pour eviter l'effet d'escalier. stty onlcr echo "Lancement du script d'extinction $0:" # Trouver comment nous sommes appeles. case "$0" in *0) message="Le systeme est stoppe." command="halt" ;; *6) message="Redemarrage." command=reboot ;; *) echo "$0: veuillez m'appeler en tant que \"rc.0\" or \"rc.6\" !" exit 1 ;; esac # Tuer tous les processus. # INIT est sense s'occuper entierement de tout ceci, mais il n'a pas # toujours fonctionne correctement sans cette seconde passe de # tuerie de processus. Puisqu'INIT a deja averti les utilisateurs # que les processus etaient tues, nous eviterons d'afficher cette # information cette fois-ci. if [ "$1" != "fast" ]; then # shutdown n'a pas encore tue tous les processus killall5 -15 killall5 -9 fi # Essayer d'arreter les quotas et la comptabilite. if [ -x /usr/sbin/quotaoff ] then echo "Arret des quotas." /usr/sbin/quotaoff -a fi if [ -x /sbin/accton ] then echo "Arret de la comptabilite." /sbin/accton fi # Avant de demonter les systemes de fichiers ecrire un # enregistrement reboot ou halt dans wtmp. $command -w # Sauvegarde de l'heure locale [ -e /usr/lib/zoneinfo/localtime ] && cp /usr/lib/zoneinfo/localtime /etc # Demontage asynchrone de tout systeme de fichiers distant echo "Demontage des systemes de fichiers distants." umount -a -tnfs & # vous devez avoir lance # 'cat /proc/mdstat | grep md0 > {your boot vol}/linux/raidgood.ref' # avant que linuxrc s'execute proprement avec cette information RAIDSTATUS=`/bin/cat /proc/mdstat | /usr/bin/grep md0 # capture raid status` # Arret de la swap, puis demontage des systemes de fichiers locaux. # effacement de mdtab par la meme occasion echo "Arret de la swap." swapoff -a echo "Demontage des systemes de fichiers locaux." umount -a -tnonfs # Ne pas remonter les volumes UMSDOS racine : if [ ! "`mount | head -1 | cut -d ' ' -f 5`" = "umsdos" ]; then mount -n -o remount,ro / fi # le peripherique racine reste monte # monter les systemes de fichiers DOS en lecture/ecriture echo "Ecriture des drapeaux RAID de demarrage en lecture seule." mount -n /dosa mount -n /dosc # creation du drapeau RAID monte en lecture seule en double # contenant l'etat a l'extinction de la matrice RAID echo ${RAIDSTATUS} > /dosa/linux/raidstat.ro echo ${RAIDSTATUS} > /dosc/linux/raidstat.ro umount -n /dosa umount -n /dosc # Arreter toutes les matrices RAID (sauf la racine) echo "Arret du RAID" mdstop -a # Voir si c'est une situation de coupure de courant. if [ -f /etc/power_is_failing ]; then echo "Extinction de l'UPS, a+." /sbin/powerd -q exit 1 fi # Maintenant arret ou redemarrage. echo "$message" [ ! -f /etc/fastboot ] && echo "Au prochain demarrage fsck sera FORCE." $command -f
Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre