के रूप में सिस्टम डिमन चलाने की पीआईडी फ़ाइल के लिए पसंदीदा स्थान this question से मेरा प्रश्न संबंधित है, लेकिन प्रश्न में प्रक्रिया क्रॉन से और गैर-मूल उपयोगकर्ताओं द्वारा चलायी जाती है। इस प्रकार, कई उपयोगकर्ताओं के पास वास्तव में घर डीआईआर नहीं है (या उनके घर के डीआईआर /usr/share/package_name
पर इंगित करते हैं जो पीआईडी फ़ाइल के लिए आदर्श स्थान नहीं है)।गैर-रूट उपयोगकर्ता
/var/run
में संग्रहीत समस्याग्रस्त है, क्योंकि यह निर्देशिका रूट के अलावा लिखने योग्य नहीं है।
मैं /tmp
का उपयोग कर सकता हूं, लेकिन मुझे आश्चर्य है कि यह सुरक्षा कारणों से आदर्श है या नहीं।
मैं /var/run
जो उपयुक्त उपयोगकर्ता के स्वामित्व में है में एक निर्देशिका बनाने के लिए एक स्टार्टअप स्क्रिप्ट के लिए व्यवस्था कर सकता है (मैं पैकेज पर ऐसा कर सकते हैं नहीं स्थापित समय, के रूप में /var
अक्सर tmpfs के रूप में रखा जाता है, तो एक समान नहीं होती)।
यहां सबसे अच्छा अभ्यास क्या है?
मुझे एक विचार है। यदि आप/tmp का उपयोग कर रहे हैं, तो क्या होगा, लेकिन एक pidfile की तलाश है जिसे 'yourdaemon.pid.UNIQUE_KEY' कहा जाता है और इसका डिमन के उपयोगकर्ता का स्वामित्व है? – hek2mgl
@ hek2mgl: 'UNIQUE_KEY' को यादृच्छिक होना होगा, लेकिन इसमें कुछ संभावनाएं हैं। यह पीआईडी फ़ाइल को थोड़ा परेशान करने का पता लगाता है, क्योंकि डेमॉन को '/ tmp/*' में सभी फ़ाइलों को पढ़ना होता है और अपेक्षित पैटर्न और स्वामित्व के विरुद्ध तुलना करना पड़ता है, लेकिन ऐसा लगता है कि यह सुरक्षित होना चाहिए। – Flimzy
@ hek2mgl: यदि आप इसे किसी उत्तर में बदलना चाहते हैं, तो मैं इसे फिर से वोट दूंगा। और इस बिंदु पर, मैं कहूंगा कि यह स्वीकार किए जाने के लिए अग्रणी है। – Flimzy