के साथ झुंड का उपयोग कर फ़ाइल लॉक करने में असमर्थ सबसे पहले मुझे दिखाएं कि क्या काम करता है। अगर मैं फ़ाइल पथ के साथ झुंड का उपयोग करता हूं, तो यह काम करता है।फाइल डिस्क्रिप्टर
टर्मिनल 1:
[[email protected] ~]# flock -x -n /tmp/foo.txt -c "sleep 100"
टर्मिनल 2:
[[email protected] ~]# flock -x -n /tmp/foo.txt -c "sleep 100"
[[email protected] ~]# echo $?
1
ऊपर उत्पादन पता चलता है कि मैं पहली बार पहला टर्मिनल में /tmp/foo.txt पर एक विशेष ताला हासिल। फिर दूसरे टर्मिनल में, जब मैं एक ही फाइल पर लॉक प्राप्त करने का प्रयास करता हूं, तो यह विफल हो जाता है।
अब मुझे बताएं कि काम नहीं करता है। अगर मैं फाइल डिस्क्रिप्टर के साथ झुंड का उपयोग करता हूं, तो यह काम नहीं करता है।
टर्मिनल 1:
[[email protected] ~]# { flock -x -n 100; sleep 100; } 100> /tmp/foo.txt
टर्मिनल 2:
[[email protected] ~]# { flock -x -n 100; sleep 100; } 100> /tmp/foo.txt
ऊपर उत्पादन पता चलता है कि मैं पहली बार पहला टर्मिनल में /tmp/foo.txt
पर एक ताला प्राप्त करने के लिए प्रयास करें। फिर दूसरे टर्मिनल में, जब मैं एक ही फाइल पर लॉक प्राप्त करने का प्रयास करता हूं, तो यह सफल होता है। मुझे उम्मीद है कि यह पिछले उदाहरण की तरह असफल हो जाएगा। यह क्यों सफल होता है?