2012-06-11 9 views
11

लिनक्स में एक बैश स्क्रिप्ट में, मैं फ़ाइल लॉकिंग को लागू करने के लिए झुंड [कमांड फ्लॉक, सिस्टम कॉल फ्लॉक()] का उपयोग नहीं कर रहा हूं जिससे साझा संसाधन [जो कि tmpfs में फ़ाइल है] के साथ समवर्ती पहुंच की रक्षा करता है।क्या प्रक्रिया से बाहर निकलने पर स्वचालित रूप से झुंड जारी किया जाता है?

मैं अपने स्क्रिप्ट के असामान्य समाप्ति को संभालने के लिए जाल संचालकों है: trap "{ rm -rf $LOCK ; rm -rf $TMPFS_FILE; exit 255; }" SIGINT SIGTERM

जहां $ लॉक अपनी लॉक फ़ाइल है और $ TMPFS_FILE अपने साझा किए गए संसाधन है।

मेरा प्रश्न है कि मुझे स्पष्ट रूप से फ़ाइल अनलॉक करने की आवश्यकता है? या क्या लिनक्स मेरे लिए सभी प्रोग्राम समाप्ति [स्वैच्छिक समाप्ति के साथ-साथ मजबूर] परिदृश्यों पर भी मेरे लिए करता है?

+0

संबंधित प्रश्न: http://stackoverflow.com/questions/3918385/flock- सवाल। –

+2

@CodeGnome मुझे लगता है कि यह 'झुंड' आदेश के बारे में है, सिस्टम कॉल 'झुंड() ' – mkb

उत्तर

12

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. 
संबंधित मुद्दे

 संबंधित मुद्दे