दिलचस्प पोस्ट
App.config से कनेक्शन स्ट्रिंग प्राप्त करें AppDomains के बीच डेटा साझा करना मूल्यों के आधार पर मानचित्र <कुंजी, मान> सॉर्ट करें (जावा) एचटीएल को वर्ड / एक्सेल / पावर पॉइंट को PHP के साथ कन्वर्ट करें एकाधिक फाइलों के साथ एक मल्टीपार्ट HTTP अनुरोध क्या दिखना चाहिए? जावा 8 में नक्शा और फ्लैटमैप के तरीकों के बीच अंतर क्या है? जावा में किसी मौजूदा फ़ाइल को पाठ की एक नई पंक्ति कैसे जोड़ें? आईओएस 4.0 में एप्लिकेशन से बाहर निकलें तालिका पंक्तियों की गणना करें XmlWriter के साथ एक मौजूदा XML फ़ाइल संलग्न करना स्क्रीन बंद होने पर मैं अपनी एंड्रॉइड सेवा कैसे चालू रख सकता हूं? JSF प्रबंधित-बीन ईजेबी इंजेक्शन जहां आप सी में नए चर की घोषणा कर सकते हैं और नहीं कर सकते हैं? कैसे iphone पर एक छवि पर एक पिक्सेल के लिए आरजीबी मूल्यों को पाने के लिए पोस्ट-रीडायरेक्ट-एएसपी। नेट से प्राप्त करें

रूबी में एक पृष्ठभूमि की प्रक्रिया पैदा करें

मैं एक स्कूल परियोजना के लिए एक रूबी बूटस्ट्रिपिंग स्क्रिप्ट लिख रहा हूं, और इस बूटस्ट्रैपिंग प्रक्रिया का एक हिस्सा कुछ पृष्ठभूमि प्रक्रियाओं को शुरू करना है (जो कि लिखा और ठीक से काम करते हैं)। मैं क्या करना चाहूंगा:

`/path/to/daemon1 &` `/path/to/daemon2 &` `/path/to/daemon3 &` 

हालांकि, डेमन 1 को निष्पादित करने के लिए पहले कॉल के ब्लॉक मैंने एक प्रक्रिया के संदर्भ देखा है। Process.spawn विधि, लेकिन यह एक 1.9+ सुविधा है, और मैं रुबी 1.8 तक सीमित हूं।

मैंने इन थियरों को विभिन्न धागे से निष्पादित करने का भी प्रयास किया है, लेकिन मैं अपनी बूटस्ट्रैप स्क्रिप्ट को बाहर निकलने में सक्षम होना चाहता हूं।

तो मैं इन पृष्ठभूमि प्रक्रियाओं को कैसे शुरू कर सकता हूं ताकि मेरी बूटस्ट्रैप स्क्रिप्ट ब्लॉक न हो और बाहर निकल सकें (लेकिन फिर भी पृष्ठभूमि में चल रहे डिमंस)?

वेब के समाधान से एकत्रित समाधान "रूबी में एक पृष्ठभूमि की प्रक्रिया पैदा करें"

जब तक आप एक पॉसिक्स ओएस पर काम कर रहे हैं तब तक आप fork और exec उपयोग कर सकते हैं।

fork = एक उपप्रकाशन बनाएं

exec = दूसरी प्रक्रिया के साथ वर्तमान प्रक्रिया बदलें

फिर आपको यह सूचित करने की आवश्यकता है कि आपकी मुख्य प्रक्रिया प्रोसेसडेटेट के माध्यम से बनाई गई सबप्रोसेस में दिलचस्पी नहीं है।

 job1 = fork do exec "/path/to/daemon01" end Process.detach(job1) ... 

ठीक है, तकनीकी तौर पर, आप, सचमुच:

 `/path/to/daemon1 &` `/path/to/daemon2 &` `/path/to/daemon3 &` 

लेकिन ऐसा नहीं होगा जो आप करना चाहते हैं, जाहिर है।

हालांकि, आप बस system (और मित्रों) को तर्क के रूप में पारित कर सकते हैं, और यह नौकरी को पृष्ठभूमि में देगा

छद्म-deamonize का बेहतर तरीका:

 `((/path/to/deamon1 &)&)` 

इस प्रक्रिया को अपने ही खोल में डाल देगा

वास्तव में डेम्यूनिक करने का सर्वोत्तम तरीका:

 `service daemon1 start` 

और सुनिश्चित करें कि सर्वर / उपयोगकर्ता को वास्तविक डेमॉन शुरू करने की अनुमति है अपने deamon स्थापित करने के लिए Linux के लिए 'deamonize' उपकरण की जांच करें