J’utilise Flock pour obtenir un verrou exclusif sur un fichier texte et y écrire quelque chose, avant de faire cela, je veux vérifier si un autre processus a une sorte de verrou sur ce fichier, si c’est le cas, j’aimerais faire autre chose être dans la queue qui est l’action par défaut dans le troupeau.
Donc, je veux quelque chose comme
if locked; then do something else ( flock -e 200 echo "In critical section" echo text >> file.txt echo text added to File ) 200>file.txt
y a-t-il un moyen de vérifier cela? J’ai examiné lsof mais je n’arrive pas à trouver une solution.
Essayez d’utiliser …
( flock -n 200 || exit 1 echo "In critical section" echo text >> file.txt echo text added to File ) 200>file.txt
Le drapeau ‘-n’ empêchera le blocage et le code de sortie sera ‘1’ si le verrou n’a pas été obtenu.