2010-04-14 14 views
12

के साथ उबंटू में सेवा के रूप में पाइथन ऐप चलाने में सहायता की आवश्यकता है मैंने बूट पर शुरू करने के लिए पाइथन में एक लॉगिंग एप्लिकेशन लिखा है, लेकिन मैं Ubuntu's Upstart init daemon के साथ ऐप शुरू करने में असमर्थ हूं। जब टर्मिनल से sudo /usr/local/greeenlog/main.pyw के साथ चलाया जाता है, तो एप्लिकेशन पूरी तरह से काम करता है। यहाँ है कि मैं क्या कल का नवाब नौकरी के लिए कोशिश की है है:अपस्टार्ट

/etc/init/greeenlog.conf

# greeenlog 

description  "I log stuff." 

start on startup 
stop on shutdown 

script 
    exec /usr/local/greeenlog/main.pyw 
end script 

मेरा आवेदन मामले महत्वपूर्ण है कि में, एक बच्चे धागा शुरू होता है। मैंने के साथ नौकरी की कोशिश की है परिणाम के बिना फोर्क स्टांजा की उम्मीद है। मैंने सूडो और स्क्रिप्ट स्टेटमेंट के बिना भी कोशिश की है (केवल एक अकेला निष्पादन कथन)। सभी मामलों में, बूट के बाद, चल स्थिति greeenlog रिटर्न greeenlog रोक/ इंतजार कर और शुरू रिटर्न greeenlog चल:

start: Rejected send message, 1 matched rules; type="method_call", sender=":1.61" (uid=1000 pid=2496 comm="start) interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")) 

किसी को भी मैं गलत क्या कर रहा देख सकते हैं? मैं आपको जो भी मदद दे सकता हूं उसकी सराहना करता हूं। धन्यवाद।

+1

जब आप 'sudo greeenlog' शुरू करते हैं, तो त्रुटि संदेश अभी भी कहता है '(uid = 1000 pid = 2496 comm = "start)'? वैसे, मैंने एक /etc/init/greeenlog.conf को सेट किया है आपने वर्णन किया है, और 'sudo start greeenlog' कमांड के साथ सफल रहा था। – unutbu

+0

अच्छी कॉल! sudo start greeenlog रिटर्न greeenlog प्रारंभ/चल रहा है, प्रक्रिया 260 9, लेकिन एप्लिकेशन वास्तव में शुरू नहीं होता है और कुछ भी लॉग नहीं होता है। बाद में कॉल करने के लिए कॉल करें greeenlog greeenlog स्टॉप/प्रतीक्षा देता है। फिर, ऐप पूरी तरह से sudo /usr/local/greeenlog/main.pyw के साथ चलता है। मुझे क्या याद आ रही है? – GreeenGuru

+2

ऐसा लगता है जैसे 'main.pyw' अपस्टार्ट के माध्यम से चलने पर क्रैश हो सकता है। शायद डालने का प्रयास करें 'greeenlog.conf' में exec /usr/local/greeenlog/main.pyw> /tmp/main.out 2> और 1' ताकि आप कुछ त्रुटि संदेश देख सकें। – unutbu

उत्तर

11

unutbu की मदद के लिए धन्यवाद, मैं अपना काम सही करने में सक्षम हूं। जाहिर है, ये केवल वातावरण चर कि कल का नवाब सेट ( os.environ साथ अजगर में लिया गया) कर रहे हैं:

{'TERM': 'linux', 'PWD': '/', 'UPSTART_INSTANCE': '', 'UPSTART_JOB': 'greeenlog', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin'} 

मेरे कार्यक्रम इन चरों के एक जोड़े पर निर्भर करता है स्थापित किया जा रहा है, तो यहां के साथ संशोधित काम है सही पर्यावरण चर:

# greeenlog 

description  "I log stuff." 

start on startup 
stop on shutdown 

env DISPLAY=:0.0 
env GTK_RC_FILES=/etc/gtk/gtkrc:/home/greeenguru/.gtkrc-1.2-gnome2 

script 
    exec /usr/local/greeenlog/main.pyw > /tmp/greeenlog.out 2>&1 
end script 

धन्यवाद!

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