GNU/Linux >> Tutoriels Linux >  >> Linux

Quelles commandes Unix peuvent être utilisées comme sémaphore/verrou ?

Je souhaite exécuter plusieurs scripts shell Bash en parallèle. Cependant, je veux éviter les conditions de course. Quelles sont vraiment les commandes Unix atomiques que je pourrais utiliser à cette fin, et comment puis-je les utiliser ?

Réponse acceptée :

Si lockfile n'est pas installé sur votre système, alors mkdir fera
le travail :c'est une opération atomique, et elle échoue si le répertoire
existe déjà (tant que vous n'ajoutez pas le -p commutateur de ligne de commande
).

create_lock_or_wait () {
  path="$1"
  wait_time="${2:-10}"
  while true; do
        if mkdir "${path}.lock.d"; then
           break;
        fi
        sleep $wait_time
  done
}

remove_lock () {
  path="$1"
  rmdir "${path}.lock.d"
}

Linux
  1. Migration d'Unix vers Linux

  2. Qu'est-ce que Posix exactement ?

  3. Comprendre les commandes Ssh suspectes ?

  4. Impossible de supprimer un répertoire sous Unix

  5. Quels ports sont utilisés par une application

Qu'est-ce qu'un dotfile shell peut faire pour vous

Qu'est-ce que Git Bash ? Travailler avec les commandes Git Bash

90 commandes Linux fréquemment utilisées par les administrateurs système Linux

SystemD - A quoi sert SystemD ?

Que faire lorsque Ctrl + C ne peut pas tuer un processus ?

Puis-je tester mon propre réseau ?