flock e concorrenza in bash

Scritto da il
🍒 Cherry Bin

Si può essere thread-safe in bash? La risposta è si!

Il comando da utilizzare per avere accesso esclusivo ad un file è flock.

Supponiamo di avere un file da utilizzare come lock:

touch mylock 

Ora possiamo attuare determinati comandi in maniera esclusiva utilizzando flock così:

flock mylock -c "comando da lanciare"

Supponiamo ora di avere un altro file, tale “file_esclusivo” a cui vogliamo accedere in maniera esclusiva.

Ecco ad esempio come scriverlo con nano usando questa modalitĂ :

flock mylock -c "nano file_esclusivo"

Se lanciamo questo comando da due shell separate, noteremo che una dei due sta in attesa che l’altra finisca!