Lecture du fichier init ( lancement de démon au demarrage ) de portmap se trouvant dans le repertoire /etc/rc.d sous Archlinux
#!/bin/bash
. /etc/rc.conf
indication du fichier de lancement de script ( fichier de configuration )
. /etc/rc.d/functions
indication du répertoire optionnel de lancement de script
PID=`pidof -o %PPID /sbin/portmap`
Declaration de la variable $PID qui correspond au numéro de processus de portmap à l'aide de la commande pidof
case "$1" in
dans le cas ou le l'argument d'entrée ( start, stop, restart )
start)
est égale a start
stat_busy "Starting Portmap"
utilisation du programme stat_busy qui affiche " Starting Portmap" en affichant en sortie "busy"
[ -z "$PID" ] && /sbin/portmap
si la variable $PID n'existe pas alors je lance le programme portmap ( équivalent à if [ -z "$PID" ] ; then /sbin/portmap ;fi )
if [ $? -gt 0 ]; then
si le résultat de la commande précédente est supérieur à 0 ( 1 ou autre correspond à une erreur ) alors
stat_fail
affichage de "fail"
else
sinon
echo $PID > /var/run/portmap.pid
écriture de la sortie de la commande echo $PID ( par exemple 8236 ) dans le fichier /var/run/portmap.pid
add_daemon portmap
ajout au démon lancé de portmap
stat_done
fin dans le cas ou la commande s'est bien déroulée et affichage de "done"
fi
fin du test de résultat de $PID
;;
fin du test dans le cas ou $1 est égale à 1
stop)
test si $1 est egale à stop
stat_busy "Stopping Portmap"
[ ! -z "$PID" ] && kill $PID &> /dev/null
si la variable $PID existe ( !-z )alors extinction du processus correspondant à la variable $PID ( qui correspond à portmap )
if [ $? -gt 0 ]; then
stat_fail
else
rm /var/run/portmap.pid
effacement du fichier /var/run/portmap
rm_daemon portmap
effacement du demon portmap
stat_done
fi
;;
restart)
$0 stop
$0 correspond au nom du programme ( en l'occurence /etc/rc.d/portmap ) donc je coupe le démon programme
sleep 1
pause de 1 seconde
$0 start
redémarrage du programme
;;
*)
dans tout les autres cas
echo "usage: $0 {start|stop|restart}"
affichage de "usage: $0 {start|stop|restart}" donc usage: /etc/rc.d/portmap {start|stop|restart}
;;
esac
fin totale du test de $1
exit 0
sortie du programme si tout s'est bien passé