2017-06-15 12 views
10

मैंने एक डरावनी त्रुटि की है और आपकी मदद की तलाश में हूं!पायथन स्क्रिप्ट बूट पर चलता है फिर अंत में रीबूट करता है - नियंत्रण कैसे प्राप्त करें?

मैं संपादन rc.local फ़ाइल द्वारा शुरू में एक अजगर स्क्रिप्ट चलाने के लिए मेरी रास्पबेरी पाई की स्थापना की है। यह ठीक होगा जब मैंने बाहर निकलने पर रास्पबेरी पीआई को रीबूट करने के लिए अपनी स्क्रिप्ट लिखी है। अब मैं एक अनंत लूप में फंस गया हूं और मैं कुछ भी संपादित नहीं कर सकता। हर बार जब मेरी स्क्रिप्ट समाप्त होती है तो यह पीआई को रीबूट करता है और फिर से शुरू होता है!

मेरे कार्यक्रम एक जीयूआई के रूप में pygame का उपयोग करता है और मैं एक रास्पबेरी पाई 3 चल noobs ओएस है कि यह साथ आया है। अगर आपको अब और जानकारी चाहिए तो कृपया पूछें।

मेरी स्क्रिप्ट को रोकने में कोई मदद है ताकि मैं किसी भी डेटा को खोए बिना पीआई तक पहुंच सकूं, इसकी सराहना की जाएगी।

संपादित करें - क्या एक अद्भुत समुदाय है। अपना ज्ञान और समय साझा करने के लिए सभी को धन्यवाद। मैं थोड़ी सी दहशत में था और आप सभी मेरी सहायता के लिए वास्तव में जल्दी आए थे। यदि आप इसे पढ़ रहे हैं क्योंकि आप एक समान परिस्थिति में हैं, तो मुझे पता चला कि बेन का जवाब सबसे तेज़ और आसान समाधान था, लेकिन अगर यह आपके लिए काम नहीं करता है तो मुझे लगता है कि फ्रॉस्टेडकुकी का विचार कोशिश करने की अगली बात होगी।

+0

किसी के रूप में बोलते हुए जो एक रास्पबेरी Pi इस्तेमाल कभी नहीं किया है, यह है कि आपने इसे शक्ति को डिस्कनेक्ट करके रोक सकता है लगता है। चाहे वह डेटा सुरक्षित रखेगा जिसे आप एक्सेस करना चाहते हैं, मुझे नहीं पता। – user2357112

+0

रीबूट के बीच आपके पास कितना समय है? – cdarke

+0

अपने पीसी और संपादित करने के लिए कनेक्ट एसडी कार्ड ' – DeepSpace

उत्तर

5

मुझे यकीन है कि अगर यह काम करेंगे (मैं एक पाई अभी नहीं है) नहीं कर रहा हूँ, लेकिन अगर आप एक टर्मिनल सामान्य रूप से, जबकि स्क्रिप्ट चल रही है उपयोग नहीं कर सकते, तो कीबोर्ड शॉर्टकट Ctrl + Alt + F1 कोशिश एक खोलने के लिए, फिर स्क्रिप्ट को मारने के लिए sudo pkill python टाइप करें (यह आपकी मशीन पर किसी अन्य पायथन प्रक्रिया को भी मार देगा)। फिर तो यह फिर से नहीं होता है अपने rc.local फ़ाइल को संपादित करने के लिए एक टर्मिनल पाठ संपादक (vi या nano शायद) का उपयोग करें।

+0

आपके मूल्यवान इनपुट बेन के लिए धन्यवाद, मुझे लगता है कि हम इस विचार के साथ कहीं और मिल रहे हैं। Ctrl + Alt + F1 दबाकर मुझे टर्मिनल दिखाया गया जैसा आपने कहा था, और सूडो पिक्ल पायथन टाइप करने से पृष्ठभूमि में पायगम चल रहा है। एकमात्र समस्या अब उस निर्देश को टाइप करने के बाद है जब कीबोर्ड अनुत्तरदायी बन जाता है। – RedPython

+0

अरे बेन, आपने यह किया! बहुत बहुत धन्यवाद, मुझे आपके विचार को थोड़ा सा समायोजित करना पड़ा, 'सूडो पिक्ल पायथन' टाइप करने के बजाय मैंने बस 'सूडो नैनो /etc/rc.local' टाइप किया और फ़ाइल संपादित की। सभी तय आपकी सहायता के लिए एक बार फिर से धन्यवाद। – RedPython

+0

मदद करने के लिए खुशी हुई, @RedPython! – Ben

0

मैं सबसे पहले .. इसे चालू था बंद और फिर

यह अभ्यस्त

  • ps aux मदद तो | ग्रेप मैं अजगर
  • killall अजगर - आप शायद बजाय अजगर स्क्रिप्ट नाम के साथ killall आदेश tweak या अलावा "अजगर"
+0

एकमात्र मुद्दा जिसे मैं कल्पना कर सकता हूं वह यह है कि वह एक अनंत बूट लूप में फंस गया है, तो उसके पास कंसोल खोलने के लिए समय होगा और उसके rc.local चलाने और रीबूट होने से पहले हत्या आदेश दर्ज करें? – FrostedCookies

+0

अच्छी तरह से निर्भर करता है कि स्क्रिप्ट क्या कर रही है, लेकिन यह चीजों को थोड़ा जटिल कर सकती है :-) वैसे भी, इसे बंद करना और किसी अन्य डिवाइस से कोड तक पहुंचने से यह संभव नहीं होगा यदि यह संभव नहीं है। – dram

8

शायद सबसे आसान तरीका है करने के लिए से एसडी कार्ड बाहर ले जाने की जरूरत है अपने पीआई, एसडी फाइल सिस्टम को अन्य कंप्यूटर पर लिनक्स चलाने पर माउंट करें और अनंत बूट लूप को हटाने के लिए वहां से अपनी rc.local स्क्रिप्ट संपादित करें। आप अपने डेटा का बैकअप भी ले सकते हैं जिससे कुछ गलत हो जाता है।

+0

धन्यवाद फ्रॉस्टेडकुकीज़। इस तरह की आवाज समस्या को हल करेगी। उम्मीद है कि मैं एक विंडोज पीसी पर rc.local फ़ाइल संपादित कर सकते हैं। दुर्भाग्यवश मुझे इस समय उपलब्ध यूएसबी एडाप्टर के लिए एक एसडी कार्ड नहीं मिला है, इसलिए यह काम से घर जाने के लिए मेरा क्यू हो सकता है, कुछ आराम करें और कल फिर कोशिश करें। – RedPython

+0

हे रेड, मुझे लगता है कि एनओयूबी फाइल सिस्टम एक लिनक्स फाइल सिस्टम प्रारूप (ext4) का उपयोग करता है, इसलिए विंडोज़ इसे माउंट करने में सक्षम नहीं होंगे। कुछ विकल्प हैं, आप या तो बूट करने योग्य फ़्लैश या लाइव वितरण का उपयोग कर अपने पीसी पर एक अस्थायी लिनक्स डिस्ट्रो बूट कर सकते हैं, या आप इसे माउंट करने के लिए विंडोज़ पर लिनक्स आभासी मशीन स्थापित कर सकते हैं। हमें जानकारी देते रहिए! – FrostedCookies

+0

धन्यवाद फ्रॉस्टेड। मुझे यकीन नहीं है कि मैं एनओयूबी शब्द के बाद कुछ भी समझता हूं, लेकिन मैं वास्तव में आपकी मदद करने की सराहना करता हूं और निश्चित रूप से आपको सूचित करता हूं। – RedPython

2

यह पाइथन/यूनिक्स के बजाय रास्पबेरी पाई समाधान है, लेकिन आप एसडी कार्ड को किसी अन्य कंप्यूटर में प्लग कर सकते हैं, इसे माउंट कर सकते हैं, और रीबूट चक्र को रोकने के लिए स्क्रिप्ट को संशोधित कर सकते हैं।

यहाँ किसी अन्य कंप्यूटर पर अपने पाई के एसडी कार्ड से फाइल संपादन के बारे में अधिक जानकारी: https://raspberrypi.stackexchange.com/questions/9515/how-to-access-the-rpi-root-ext4-file-system-by-inserting-sd-card-into-a-differen

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