Configurez cron en ajoutant un script dans la crontab pour qu il active le service toutes les cinq minutes.
vanvincq@Debian-Laptop ~ $ crontab -e
# Lancement du script toutes les cinq minutes
*/5 * * * * /tmp/dummyd.sh start
Modifier le code de façon à ce que cron relance le service mais uniquement si celui ci nŽest plus en mémoire (plus journalisation).
#!/bin/sh
varrun=/var/run
file=dummy
repwork=/tmp
logdir=/tmp/log
case "$1" in
start)
# On journalise le lancement du serveur
if [ ! -d ${logdir} ] ; then mkdir -p ${logdir}; fi
# Le service est relancé uniquement si celui ci n'est plus en mémoire
isStarted=$(ps aux | grep dummy.sh | grep -v grep | wc -l) # ou `ps aux | grep [d]ummy.sh | wc -l`
if [ ${isStarted} = 0 ]; then
echo "$(date) Lancement du programme" >> ${logdir}/${file}.log
${repwork}/${file}.sh &
else
echo "$(date) Le programme est déjà en cours d'exécution" >> ${logdir}/${file}.log
fi
;;
stop)
# On se sert du PID stocké dans un fichier pour arrêter le serveur
echo "$(date) Arrêt du programme" >> ${logdir}/${file}.log
kill -9 $(cat ${varrun}/${file}/${file}.pid)
rm -f ${varrun}/${file}/${file}.pid
;;
*)
echo "no comment";;
esac
Petite interrogation: fallait-il créer un troisième script pour le contrôle en mémoire etc. et non pas éditer directement le dummy.sh ?