हार्ड रिबूट के बाद / var / run में डायरेक्ट्री डिलीट हो जाती है


19

मैं अपने sphinx pid को /var/run/sphinx/searchd.pid पर रखता हूं लेकिन हर बार जब मैं निर्देशिका को रिबूट करता हूं / var / run / sphinx गायब हो जाता है और स्फिंक्स शुरू करने में विफल रहता है। वहाँ एक रास्ता है कि निर्देशिका छड़ी बनाने के लिए या यह स्वचालित रूप से बनाया है? लोग आमतौर पर इस स्थिति को कैसे संभालते हैं? मैं उबंटू हार्डी का उपयोग करता हूं

ubuntu  pid 

क्या आप हमें इसका आउटपुट दे सकते हैं mount?
reconbot

जवाबों:


18

वह निर्देशिका डिजाइन के अनुसार अल्पकालिक है। यदि इसकी सामग्री बूटों के चारों ओर अटक जाती है, तो सभी प्रकार के बदसूरत प्रभाव हो सकते हैं, क्योंकि विभिन्न प्रकार की नियंत्रण लिपियों में यह देखने के लिए होता है कि उन्हें कौन सी प्रक्रियाएं सिग्नलिंग होनी चाहिए। हाल की प्रणाली पर, इस अस्थायी प्रकृति को बढ़ते हुए लागू किया /var/runजाता है tmpfs, जबकि पुराने सिस्टम ने स्टार्टअप में निर्देशिका में सब कुछ हटा दिया है।

इसलिए, आपको उस निर्देशिका को बनाने के लिए स्फिंक्स या इसके स्टार्टअप स्क्रिप्ट को कॉन्फ़िगर करने की आवश्यकता है, या बस /var/runसीधे पीआईडी ​​फ़ाइल लिखें ।


4
/ Var / रन के विवरण के लिए +1। लेकिन ध्यान दें कि वह नहीं चाहता है कि पीआईडी ​​फाइल एक रिबूट के पार बनी रहे; बस स्फिंक्स निर्देशिका।
स्टीव फॉली

15

आपके पास कम से कम दो मौके हैं:

  • एक करने के लिए अपनी init स्क्रिप्ट बदलें mkdir -p /var/run/sphinx/

या

  • सेट pid_file = /var/run/sphinx-searchd.pidमें/etc/sphinx.conf

मैं दूसरे के लिए हूँ।


2
और निश्चित रूप से इसका मतलब है कि स्टार्टअप स्क्रिप्ट को रूट के रूप में चलना चाहिए जो सीधे लिखने में सक्षम हो या एक निर्देशिका बना सकता है। जो कष्टप्रद है ...
एल्फ

मैंने दूसरा उपाय भी चुना। ऐसा लगता है कि इस के लिए पूर्वता है (क्रोन, एसएचएस, एटीडी, सिसलॉग)।
बिलमैन

2

अस्थायी फ़ाइलों और निर्देशिकाओं जैसे कि इन के निर्माण के लिए अब एक केंद्रीकृत तंत्र है। इस पद्धति का उपयोग करने की इच्छुक सेवा अपने स्टार्टअप स्क्रिप्ट में mkdir कमांड को हटा सकती है और इसके बजाय .conf फ़ाइल को /etc/tmpfiles.d, /run/tmpfiles.d, या /usr/lib-tmpfiles.d में उबंटू के साथ रख सकती है। अंतिम विकल्प को पसंद करने वाली सेवाएं। आपके मामले के लिए एक फ़ाइल बनाएँ /usr/lib/tmpfiles.d/sphinx.conf
फ़ाइल की सामग्री यह होगी:
d /var/run/sphinx 0755 root root

यहाँ dनिर्देशिका के लिए खड़ा है, इसके बगल में पथ, अनुमति, स्वामी और समूह है।
यह /var/run/sphnixरीबूट पर निर्देशिका बनाएगा ।

पूर्ण प्रलेखन tmpfiles.d चेकआउट करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.