====== Exécution unique d'un script BASH ====== {{ :dummy.png?75x75|Nom de la section}} Il arrive que l'on est besoin d'exécuter de manière un script. C'est à dire que le script ne doit pas démarré alors que le précédent lancement n'est pas terminé. Il faut savoir que lorsqu'un script ou un programme s'exécute, le système d'exploitation lui attribue un identifiant unique, appelé **process id**. Le script doit s'assurer une execution unique. Pour se faire, il déclarera son **process id** dans un fichier. Le fichier sera consulté systématiquement au démarrage. Si le **process id** est toujours en cours d'exécution, alors l'exéction qui vient de démarrer, s'arrêtera. Voici l'algo proposé : lire le process id dans le fichier le process existe-il encore ? si oui alors EXIT sinon remplacer le process id par le notre continuer l'execution du script ... supprimer le fichier contenant le process id En BASH, voici le code proposé pour un script de sauvegarde : if [ -f /root/save.pid ]; then pid_in_file=$(cat /root/save.pid) if [ -d /proc/$pid_in_file ]; then echo -e Une sauvegarde est en cours exit; else rm /root/save.pid fi fi echo $$>/root/save.pid .... rm /root/save.pid