मुझे एक लॉक फ़ाइल बनाने की आवश्यकता है जिसे अन्य स्क्रिप्ट या प्रक्रियाओं द्वारा हटाया नहीं जा सकता है। मैं इस की कोशिश की:बाहरी प्रक्रियाओं के विरुद्ध फ़ाइल को लॉक कैसे करें
$f = fopen($pidFile, 'w');
fwrite($f, getmypid());
flock($f, LOCK_EX);
लेकिन किसी अन्य प्रक्रिया वर्तमान उपयोगकर्ता से शुरू $f
फ़ाइल फ़ाइल संभाल अभी भी चल रहा है स्क्रिप्ट के द्वारा खोला जाता है, भले ही हटा सकते हैं। इस समस्या को हल करने और दूसरों को रोकने के लिए (यानी गैर-PHP प्रक्रियाएं भी) फ़ाइल को हटाने से? और जब प्रक्रिया निकलती है तो लॉक स्वचालित रूप से रिलीज़ हो जाएगा? सभी समान प्रश्न आरटीएम झुंड() के साथ समाप्त होते हैं, लेकिन उनमें से कोई भी बाहरी प्रक्रियाओं के खिलाफ फ़ाइल को लॉक करने का उत्तर नहीं देता है।
ओएस Linux 2.6.32-431.el6.x86_64
'झुंड 'सलाहकार" सख्त नहीं है। अपनी स्क्रिप्ट में फ़ाइल के साथ कुछ भी करने से पहले [अतिरिक्त जांच] (http://stackoverflow.com/questions/20771824/php-test-if-file-is-locked) का उपयोग करें। यह काम करेगा यदि यह आपकी अपनी PHP स्क्रिप्ट के बारे में है। यदि यह बाहरी प्रक्रियाओं के बारे में है - तो 'झुंड' मामले को सहेज नहीं सकता है। –
जैसा कि मैंने अपने प्रश्न में उल्लेख किया है, मुझे बाहरी प्रक्रियाओं से हटने से रोकने के लिए फ़ाइल को लॉक करने की आवश्यकता है (यानी गैर-PHP भी) –