Page suivante
Page précédenteTable des matières
#! /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 déjà 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
Page suivante
Page précédenteTable des matières