Ho una serie di script di shell che eseguono i backup sul mio sistema utilizzando TrueCrypt e rsync. Voglio evitare ogni possibilità che questi vari script funzionino contemporaneamente.gregge (1) non riesce a rilasciare il blocco
Usano flock
in una subshell, come descritto nel suo manuale:
(
flock -n 9 || exit 1
# ... commands executed under lock ...
) 9>/var/lock/mylockfile
Tuttavia, il blocco viene sempre riesce ad acquisire per passaggi successivi (con stato di uscita 1).
Eppure fuser /var/lock/mylockfile
e lsof /var/lock/mylockfile
mostrano nulla.
Ora, se aggiungo il comando flock -u
per sbloccare manualmente, in questo modo:
(
flock -n 9 || exit 1
# ... commands executed under lock ...
flock -u 9
) 9>/var/lock/mylockfile
Poi gli script funzionano.
Sto usando flock
correttamente? È sicuro chiamare flock -u
all'interno del blocco?
proposito Gli script fastidiosi sono quelli che chiamano truecrypt all'interno del blocco di comando.
Impressionante, grazie! Sei davvero corretto. Ho chiuso il descrittore di file quando ho chiamato TrueCrypt (e rimosso le chiamate 'flock -u') e ora funziona perfettamente. – QuasarDonkey