Init script Portmap Archlinux


 

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é