2012-06-11 10 views
11

In uno script bash in Linux, sto usando flock [il flock di comando, non il system call flock()] per implementare il blocco dei file proteggendo così l'accesso concorrente a una risorsa condivisa [che è un file in tmpfs].Il gregge viene rilasciato automaticamente all'uscita del processo?

devo gestori trappola per gestire chiusura anomala del mio script: trap "{ rm -rf $LOCK ; rm -rf $TMPFS_FILE; exit 255; }" SIGINT SIGTERM

dove $ LOCK è il mio file di blocco e $ TMPFS_FILE è la mia risorsa condivisa.

La mia domanda è: devo fare anche un file sblocco in modo esplicito? Oppure Linux lo fa per me su tutti gli scenari di cessazione del programma [sia di licenziamento volontario che forzato]?

+0

questione connessa su flock() in Python: http://stackoverflow.com/questions/3918385/flock- domanda. –

+2

@CodeGnome penso che si tratti del comando 'flock', non della system call' flock() ' – mkb

risposta

12

Da man 1 flock:

-u, --unlock

  Drop a lock. This is usually not required, since a lock is 
      automatically dropped when the file is closed. However, it may 
      be required in special cases, for example if the enclosed com‐ 
      mand group may have forked a background process which should not 
      be holding the lock. 
Problemi correlati