Pour cela je vais te donner quelques astuces qui te permettront de parer à ce désagrément.
- 1ere astuce (dans le code...) :
le but du jeu est protegé le script de l'execution multiple via un fichier "sémaphore".
debut du script :
#!/bin/bash
if [ -f /var/run/$0.pid ] ; then
echo "Une autre instance tourne" >> /var/log/$0.log
exit 1
fi
touch /var/run/$0.pid
if [ $? -ne 0 ] ; then
echo "impossible de cree le fichier /var/run/$0.pid" >> /var/log/$0.log
exit 2
fi
# ton code ici
fin du script :
rm -f /var/run.$0.pid
exit 0
cette methode a le merite de pouvoir controler les multiples executions de ton script meme quand tu n'as pas acces au crontab de la machine.
- 2eme actuce (dans la ligne du crontab) :
[ $(pgrep -c "ton_script") -eq 0 ] && "execution_de_ton_script" || :
cette derniere methode a le merite de pouvoir etre plus souple et d'autoriser et / ou de controler l'execution multiple.exemple :
*/10 * * * * [ $(pgrep -c "ton_script") -lt 5 ] && "execution_de_ton_script" || :
ce script se lancera toutes les 10 minutes dans la limite de 5 instances du processus courant...
En espérant que ce post te seras d'un utilité quelconque ou t'auras appris quelque nouvelle astuce pour bien gérer ta machine.