GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Welche Unix-Befehle können als Semaphor/Sperre verwendet werden?

Ich möchte mehrere Bash-Shell-Skripte parallel ausführen. Ich möchte jedoch Rennbedingungen vermeiden. Welche Unix-Befehle sind wirklich atomic, die ich für diesen Zweck verwenden könnte, und wie kann ich sie verwenden?

Akzeptierte Antwort:

Wenn lockfile nicht auf Ihrem System installiert ist, dann mkdir erledigt
die Arbeit:Es handelt sich um eine atomare Operation, die fehlschlägt, wenn das Verzeichnis
bereits existiert (solange Sie nicht den -p hinzufügen Befehlszeilenschalter
).

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. Was ist umask in UNIX/Linux

  2. Spinlock versus Semaphore

  3. Ein Verzeichnis kann in Unix nicht entfernt werden

  4. Was tun, wenn Strg + C einen Prozess nicht beenden kann?

  5. Welche Ports werden von einer Anwendung verwendet?

Linux vs. Unix:Was ist der Unterschied?

Was ist Git Bash? Arbeiten mit Git Bash-Befehlen

40 häufig verwendete grundlegende Linux-Befehle

In welcher Reihenfolge werden weitergeleitete Befehle ausgeführt?

90 Linux-Befehle, die häufig von Linux-Systemadministratoren verwendet werden

SystemD - Wofür wird SystemD verwendet?