2012-05-18 9 views
17

मुझे पता चला कि मेरे Django एप्लिकेशन को sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 के माध्यम से कैसे चलाया जाए। हालांकि, टर्मिनल छोड़ने के बाद, सर्वर चलना बंद कर देता है।मैं अपने एसएसएच सत्र को बंद करने के बाद भी अपने Django सर्वर को कैसे चला सकता हूं?

मैंने पृष्ठभूमि में इस प्रक्रिया को चलाने की कोशिश की, लेकिन sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 & निष्पादित करने के बाद सर्वर बस बंद हो गया।

टर्मिनल में अपना एसएसएच सत्र छोड़ने के बाद भी मैं अपना Django एप्लिकेशन कैसे चला सकता हूं?

पीएस - क्षमा करें यदि यह प्रश्न आपको प्राथमिक के रूप में मारता है। इस तरह की मूर्खता तब होती है जब फ्रंट-एंड जावास्क्रिप्ट प्रोग्रामर को ब्रेक-गर्दन की गति में सर्वर व्यवस्थापक में बदलना चाहिए।

+3

बस याद रखें कि रनरवर केवल विकास के लिए है ... –

+0

प्रतीक्षा करें, यह केवल विकास के लिए क्यों है? मैंने इसे Django दस्तावेज में भी पढ़ा, लेकिन क्या कमियां हैं? मुझे लगता है कि यह ठीक काम करेगा। – dangerChihuahua007

+5

मत करो। उपयोग। Runserver। में। उत्पादन। कभी। यह सिंगल थ्रेडेड है। यह असुरक्षित है। यह अनुकूलित नहीं है। बिलकुल। यह आपके कोड को विकास में परीक्षण करने की अनुमति देने के लिए पूरी तरह से और पूरी तरह से * सुविधा * है। इसे कभी भी डिजाइन नहीं किया गया था और न ही उस से परे किसी भी चीज़ के लिए इस्तेमाल किया जाना था। –

उत्तर

26

screen से मिलें।

एसएसएच, स्टार्ट स्क्रीन से कनेक्ट करें। यह एसएसएच द्वारा प्रदान किए गए एक के शीर्ष पर वर्चुअल कंसोल एमुलेटर खोलता है। वहां अपना सर्वर शुरू करें।

फिर Ctrl-a दबाएं, फिर डी। यह पृष्ठभूमि सत्र को चालू रखते हुए, स्क्रीन सत्र को अलग करता है।

[आर] इसे ई-संलग्न करने के लिए, स्क्रीन-आर का उपयोग करें।

यदि स्क्रीन स्थापित नहीं है और आप इसे इंस्टॉल नहीं कर सकते हैं, तो आप कोशिश के अनुसार & को कमांड में जोड़कर पृष्ठभूमि में एक एप्लिकेशन भी शुरू कर सकते हैं। लेकिन आपको टर्मिनल विंडो बंद नहीं करना चाहिए; बैश कमांड निकास, या Ctrl-d के साथ बस डिस्कनेक्ट करें।

स्क्रीन का लाभ यह है कि यदि आप कोई त्रुटि या कुछ भी हो, तो भी आप सर्वर से आउटपुट पढ़ सकते हैं।

स्क्रीन कई वाकई के साथ एक बहुत शक्तिशाली उपकरण है। आप Ctrl-a के साथ एक नई आभासी विंडो जोड़ सकते हैं, फिर सी (निर्माण के लिए); Ctrl-a के साथ विंडो के माध्यम से स्विच करें, फिर n (अगला) या पी (पिछला), ...

लेकिन इसे उपयोग करने के लिए इसे इंस्टॉल करने की आवश्यकता है। चूंकि आपके पास रूट पहुंच है, इसलिए यह कोई समस्या नहीं होनी चाहिए।

संपादित करें: tmux एक ही उपयोग के मामले के लिए एक और अच्छा समाधान है।

+0

धन्यवाद! मैं इसे स्थापित करने के बाद स्क्रीन की जांच करूंगा। मुझे अजीब मिल रहा है !!! कोई tgetent - स्थापना करने पर कोई स्क्रीन 'त्रुटि, लेकिन मैं इसे समझ लेंगे। – dangerChihuahua007

+0

आपके वितरण में शायद एक पैकेज पूर्व-कॉन्फ़िगर किया गया है जो स्थापित होने के लिए तैयार है। क्या आपने इसका इस्तेमाल किया? डेबियन या उबंटू के लिए, यह स्थापित स्क्रीन प्राप्त करने के लिए उपयुक्त होगा। इस तरह, यह आवश्यक पैकेज भी स्थापित करेगा। – Gyscos

+0

आह, धन्यवाद! मैंने कुछ आवश्यक सी पुस्तकालयों को प्राप्त करने के लिए 'sudo apt-get libncurses5-dev' स्थापित करके समस्या को ठीक किया है। वाह, स्क्रीन महान काम करता है! मैंने बस एक पृथक नकली टर्मिनल में सर्वर चलाया और मेरा एसएसएच कनेक्शन बंद कर दिया। सर्वर अभी भी चल रहा है: डी मैंने प्रक्रिया को 'pstree' के साथ भी सत्यापित किया है। मैं उपरोक्त टिप्पणियों के अनुसार Django रनरवर का उपयोग नहीं कर सकता, लेकिन यह जवाब निश्चित रूप से मेरे मूल प्रश्न को हल करता है और मुझे कुछ नया सिखाता है। धन्यवाद: डी – dangerChihuahua007

4

नई वर्चुअल विंडो बनाने के लिए screen का उपयोग करें, और वहां सर्वर चलाएं।

$ screen 
$ python manage.py runserver 

आप देखेंगे कि Django सर्वर चलना शुरू हो गया है।

अब Ctrl+A दबाएं और फिर उस स्क्रीन से अलग होने के लिए D कुंजी दबाएं। यह कहना होगा:

$ [detached from ###.pts-0.hostname] 

अब आप सुरक्षित रूप से, अपने टर्मिनल से लॉगआउट अपने टर्मिनल में वापस लॉग इन कर सकते हैं, अन्य निर्देशिकाओं में कोडिंग के अन्य बिट्स करते हैं, एक छुट्टी के लिए जाना है, जो चाहें करें।


स्क्रीन है कि आप से अलग है पर लौटने के लिए,

$ screen -r 

अब Django सर्वर को मारने के लिए, बस Ctrl+C प्रेस की तरह आप सामान्य रूप से किया है जाएगा।


इस स्क्रीन से terminate इस वर्तमान स्क्रीन के बजाय detaching करने के लिए, Ctrl+D का उपयोग करें। यह कहेंगे:

$ [screen is terminating] 
$ 
+0

पुट्टी बंद करने के बाद स्क्रीन पर वापस कैसे जाएं। यह कहता है कि – amitnair92

+0

फिर से शुरू करने के लिए कोई स्क्रीन पट्टी के बारे में निश्चित नहीं है –

3

नोहप का उपयोग करें। निम्नानुसार अपना आदेश बदलें:

nohup sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &