मैंने werkzeug का उपयोग करके छोटा वेब सर्वर बनाया है और मैं इसे python my_server.py
के साथ सामान्य पायथन तरीके से चलाने में सक्षम हूं। पेज लोड, सबकुछ ठीक काम करता है। अब जब मैं अपने पीसी बूट करता हूं तो इसे शुरू करना चाहता हूं। ऐसा करने का सबसे आसान तरीका क्या है? मैं नवोदय साथ संघर्ष कर रहा है, लेकिन यह "एक पृष्ठभूमि में रहते हैं" के लिए cuz के बाद मैं start my_server
निष्पादित मैं तुरंत kernel: [ 8799.793942] init: my_server main process (7274) terminated with status 1
बूट समय पर डिमन के रूप में पाइथन स्क्रिप्ट चलाएं (उबंटू)
my_server.py प्राप्त प्रतीत नहीं होता:
...
if __name__ == '__main__':
from werkzeug.serving import run_simple
app = create_app()
run_simple('0.0.0.0', 4000, app)
नवोदय विन्यास फाइल my_server.conf :
description "My service"
author "Some Dude <[email protected]>"
start on runlevel [2345]
stop on runlevel [016]
exec /path/to/my_server.py
start on startup
कोई विचार यह कैसे काम करता है? या स्क्रिप्ट को खत्म करने के लिए कोई और बेहतर तरीका है?
अद्यतन: मुझे विश्वास है कि समस्या my_server.py
के भीतर है। ऐसा लगता है कि वेबसर्वर (विधि run_simple()
) पहली जगह में शुरू नहीं होता है। .py फ़ाइल को टास्क हैंडलर जैसे अपस्टार्ट द्वारा चलाने के लिए क्या कदम उठाने चाहिए? पहली पंक्ति के रूप
- प्लेस कुटिया
#!/usr/bin/env python
- अनुमति दें निष्पादन अनुमतियों
chmod 755
- प्रारंभ सुपर उपयोगकर्ता अधिकारों के साथ डेमॉन
- सुनिश्चित करें कि सभी अजगर पुस्तकालयों रहे हैं (पूरी तरह से सुनिश्चित कोई अनुमति प्रतिबंध शुरू से रोकता है) क्या आप वहां मौजूद हैं! बाकी
- कुछ?
हल: समस्या अजगर निर्भरता याद आ रही थी। कार्य प्रबंधक के माध्यम से स्क्रिप्ट शुरू करते समय (उदा। upstart
या start-stop-daemon
) कोई त्रुटि नहीं फेंक दी जाती है। पूरी तरह से यह सुनिश्चित करने की आवश्यकता है कि Pythonpath में आपको जो भी चाहिए वह शामिल है। ऐसा करने के लिए crontab उपयोग कर रहा है
रनलेवल 235 का प्रयास करें और आप जिस सर्वर को सर्वर चलाते हैं, उसे 4000 निजीकृत बंदरगाहों का उपयोग करें, जिसके लिए व्यवस्थापक की कठोरता की आवश्यकता होती है। – Denis
मैं इसे सुपरसियर के रूप में चलाता हूं और रनलेवल को बदलकर 235 तक मदद नहीं करता था। – and3p
क्या यह संभव है कि आपके ऐप की निर्भरता सेवाएं अभी तक शुरू नहीं हुई हैं? कुछ डेटाबेस की तरह? – tdihp