#!/bin/sh

# --> Commentaires ajoutés par l'auteur de ce document identifiés par "# -->".

# --> Ceci fait partie du paquetage de scripts 'rc'
# --> par Miquel van Smoorenburg, &lt;miquels@drinkel.nl.mugnet.org>.

# --> Ce script particulier semble être spécifique à Red Hat / FC
# --> (il pourrait ne pas être présent dans d'autres distributions).

#  Arrête tous les services inutiles qui sont en cours d'exécution (ils ne
#+ devraient pas, donc il s'agit juste d'un test)

for i in /var/lock/subsys/*; do
        # --> Boucle for/in standard, mais comme "do" se trouve sur la même
	# --> ligne, il est nécessaire d'ajouter ";".
	# Vérifie si le script existe.
	[ ! -f $i ] && continue
	# --> C'est une utilisation intelligente d'une "liste et", équivalente
	# --> à: if [ ! -f "$i" ]; then continue

	# Obtient  le nom du sous-système.
	subsys=${i#/var/lock/subsys/}
	# --> Correspondance de nom de variable qui, dans ce cas, est le nom du
	# --> fichier. C'est l'équivalent exact de subsys=`basename $i`.
	
	# --> Il l'obtient du nom du fichier de verrouillage (si il existe un
	# --> fichier de verrou, c'est la preuve que le processus est en cours
	# --> d'exécution).
	# --> Voir l'entrée "lockfile", ci-dessus.


	# Arrête le sous-système.
	if [ -f /etc/rc.d/init.d/$subsys.init ]; then
	    /etc/rc.d/init.d/$subsys.init stop
	else
	    /etc/rc.d/init.d/$subsys stop
        # --> Suspend les jobs et démons en cours.
	# --> Notez que 'stop' est un paramètre de position, pas une commande
	# --> intégrée.
	fi
done
