Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/07/2006, à 20:54

gene69

[bash] zone critique?

Bonjour, j'aimerai savoir comment je peux faire pour empecher deux execussions concourantes d'un script bash, autrement que par la vérification de l'uid parce que ça sert à rien dans mon cas.

je vois que le systeme utilise des fichiers lock mais je ne vois pas comment reproduire le comportement et quelle serait les opérations atomiques?


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#2 Le 16/07/2006, à 21:06

tshirtman

Re : [bash] zone critique?

ben vérifier ( if [  -e lock ]; then ) la présence du fichier lock
quitter ou continuer (if lol)
creer le fichier (commande touch)
script
détruire le fichier (rm)

ça vas comme ça?
bon bien sur c'est pas d'une précision atomique (si les deux instances du script sont lancé dans le même 100em de secondes et que un script fait son test puis l'ordonaceur donne la parole à l'autre script (qui test et crèe le fichier) il y auras bien deux instances mais bon là on est tatillon.

edit: parce que pour tester y'avait plus simple ^^

Dernière modification par tshirtman (Le 16/07/2006, à 21:15)

Hors ligne

#3 Le 16/07/2006, à 23:39

gene69

Re : [bash] zone critique?

ben je cherche un truc tatillon. parce qu'on va utiliser apt  qui vérouille lui mais comme je lui modifie son environnement je voudrais pas qu'il y en ai un autre qui soit lancer sans mon accord et qui fout le bordel.


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne

#4 Le 17/07/2006, à 01:58

tshirtman

Re : [bash] zone critique?

sinon tu peut aussi vérifier le nombre d'instance de ton prog dans ps -fe
après je vois pas faidrait executer une portion du script en mode protégé (ps d'interuption même de l'ordonnaceur), je sais pas si ça se fait en bash (et ça m'étonnerait).

Hors ligne