निम्नलिखित ताला तंत्र समवर्ती चलती से एक cron
काम को रोकने के लिए प्रयोग किया जाता है:, पहले खत्म जब तकबैश झुंड: बाहर निकलें, तो प्राप्त नहीं कर सकते हैं ताला
#!/bin/bash
echo "Before critical section"
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
जब दो उदाहरणों एक साथ चल रहा है, बाद में इंतजार करता है और फिर चलता है। यह चलाने के लिए प्रतीक्षा स्क्रिप्ट के बैकलॉग का कारण बन सकता है।
मैं इस स्क्रिप्ट को कैसे बदलूं ताकि flock
लॉक प्राप्त नहीं कर सके, तो यह स्क्रिप्ट को समाप्त कर देता है? मैंने बिना सफलता के -n
की कोशिश की है।
यह विफल होने पर मामलों को दस्तावेज करना अच्छा लगेगा। मुझे संदेह है कि अगर $ 0' में रिक्त स्थान हैं तो यह असफल हो जाएगा, और यह विफल हो जाएगा यदि '0 0' में चल रहे स्क्रिप्ट का पथ नहीं है (उदा। स्क्रिप्ट कहीं और है लेकिन 'पथ' पर)। – joeytwiddle
$ 0 के पास अभी भी पथ होना चाहिए यदि यह $ PATH में है। एक मामला जहां यह काम नहीं करता है वह डैश के नीचे है। – steveayre