संख्या 200 के बारे में कुछ खास नहीं है। यह flock
कमांड के मैन पेज में उपयोग किया जाने वाला उदाहरण होता है; और यह एक बड़ी संख्या होती है, इसलिए आपकी स्क्रिप्ट के दौरान खोले गए किसी अन्य फ़ाइल के फ़ाइल डिस्क्रिप्टर के साथ संघर्ष करने की संभावना नहीं है।
अपनी टिप्पणी में, आप के बारे में पूछते हैं:
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
कोष्ठकों ()
एक subshell बनाएँ; एक नई प्रक्रिया, माता-पिता प्रक्रिया से अलग है। 200>/tmp/blah.lockfile
उस प्रक्रिया को /tmp/blah.lockfile
को फ़ाइल डिस्क्रिप्टर 200 पर लिखने के लिए खोलने का कारण बनता है। कोष्ठक के अंदर के आदेश उस खोल के भीतर निष्पादित किए जाते हैं।
flock -e 200
फ़ाइल डिस्क्रिप्टर 200 द्वारा इंगित फ़ाइल पर एक विशेष लॉक प्राप्त करता है। एक विशेष लॉक का अर्थ है कि कोई भी व्यक्ति जो उस फ़ाइल पर लॉक प्राप्त करने का प्रयास करता है, या तो अनन्य या साझा किया जाता है, इस लॉक तक ब्लॉक (प्रतीक्षा) करेगा छोड़ा गया, या विफल हो गया अगर वे एक टाइमआउट मारा या ब्लॉक करने के लिए कहा। तो सबहेल के शरीर के शेष (echo
और sleep
कमांड) के दौरान, लॉक उस सबहेल द्वारा आयोजित किया जाएगा, और कोई भी उस लॉक को प्राप्त नहीं कर सकता है। एक बार सबहेल खत्म होने के बाद, फ़ाइल बंद हो जाएगी और बंद कर दिया जाएगा।
स्रोत
2012-11-25 14:23:47
यह सिर्फ एक मनमाना फ़ाइल वर्णनकर्ता संख्या है। – Mat