Comment puis-je vérifier si un fichier est verrouillé par un autre processus?

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.