GNU/Linux >> Linux Esercitazione >  >> Linux

Quali comandi Unix possono essere usati come semaforo/blocco?

Voglio eseguire più script di shell Bash in parallelo. Tuttavia, voglio evitare le condizioni di gara. Quali sono i comandi Unix veramente atomici che potrei usare per questo scopo, e come posso usarli?

Risposta accettata:

Se lockfile non è installato sul tuo sistema, quindi mkdir farà
il lavoro:è un'operazione atomica e fallisce se la directory
esiste già (a patto che non si aggiunga il -p riga di comando
interruttore).

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. Linux vs. Unix:qual è la differenza?

  2. Cosa può fare per te un file dot di shell

  3. 40 comandi di base di Linux usati frequentemente

  4. Che cos'è esattamente Posix?

  5. Comprensione dei comandi Ssh sospetti?

Cos'è Git Bash; Lavorare con i comandi Git Bash

90 comandi Linux usati frequentemente dagli amministratori di sistema Linux

SystemD - A cosa serve SystemD?

Cos'è umask in UNIX/Linux

Impossibile rimuovere una directory in Unix

Che cos'è uno spinlock in Linux?