2012-04-25 15 views
7

का उपयोग किए बिना पृष्ठभूमि में रूबी स्क्रिप्ट चलाएं मेरे पास रेल वातावरण में दो स्क्रिप्ट हैं जिन्हें 24/7 चलाना है। मैं रिमोट सर्वर पर काम कर रहा हूं, इसलिए मुझे ssh का उपयोग करके स्क्रिप्ट शुरू करने की आवश्यकता है, जिसका अर्थ है कि मुझे हर समय एसएसएच विंडो खोलने की जरूरत है।स्क्रीन

मैं पृष्ठभूमि में इन स्क्रिप्ट को चलाने के लिए एक आसान तरीका खोज रहा हूं ताकि जैसे ही मैं एसएसएच कनेक्शन बंद कर दूं।

मैं screen का उपयोग नहीं करना चाहता हूं। मुझे लगता है कि इसे संभालने के लिए आसान तरीका होना चाहिए। क्या नहीं है

+1

क्या आपने भगवान और/या मॉनिट को देखा है? – d11wtq

उत्तर

20

मुझे लगता है कि सबसे बुनियादी समाधान wo nohup हो uld:

nohup myscript &> /dev/null & 
+0

हाँ यह सही है और हम आउटपुट को लॉग फ़ाइल में रीडायरेक्ट कर सकते हैं: नोहप रूबी myscript.rb> myscript.log और मैंने इसे रूबी स्क्रिप्ट के साथ अभी कोशिश की है, और आप यह भी जांच सकते हैं कि यह कमांड के माध्यम से चल रहा है या नहीं: ps - फू उपयोगकर्ता नाम –

2

Daemons देखें। यह एक स्क्रिप्ट को एक नियंत्रित करने योग्य डेमॉन में परिवर्तित करने के लिए टूलकिट है।

4

आप एक स्क्रिप्ट त्याग देते कर सकते हैं:

ruby script.rb &! 

STDOUT/STDERR अभी भी चालू खोल से जुड़े होते हैं, लेकिन ruby प्रक्रिया खोल के एक बच्चे को अब और नहीं है तो, यदि आप टर्मिनल बंद करते हैं तो यह नहीं मारा जाएगा।

संबंधित मुद्दे