2016-12-15 3 views
7

ich ein Python-2.7-Skript auf einem Raspberry Pi 3.Python-Skript stürzt nach langer Zeit läuft

class UIThread(threading.Thread): 

    def __init__(self, threadID, name, counter, U): 

    threading.Thread.__init__(self) 

    self.threadID = threadID 

    self.name = name 

    self.counter = counter 

    self.U = U 

    def run(self): 

    self.U.run() 

def main(): 

    time.sleep(3) 

    try: 
    try: 
     ###launch a UI running as background thread##### 
     U = UIlib.UI() 
     thread1 = UIThread(1, "UI", 1, U) 
     thread1.daemon = True 
     thread1.start() 

    except: 
     ###if there is no monitor, lanch a fake UI class####### 
     U = UIlib.nomonitorUI() 
     thread1 = UIThread(1, "NMUI", 1, U) 
     thread1.daemon = True 
     thread1.start() 

     print "No Monitor detected" 
     pass 

    ####perform interaction with the BQ chip, contain a while true loop###### 
    char_balan(U) 

    except: 
    e = sys.exc_info() 
    print e 
    print "UI exit" 

basely ausgeführt haben, was es tut, ist eine Nachricht durch UART auf einen Chip zu senden, Antwortnachricht erhalten, update protokollieren Sie Dateien und drucken Sie sie auf die Benutzeroberfläche (eine Benutzeroberfläche, die auf einem Monitor angezeigt wird, der von python curses erstellt wurde). Es macht das alle 1 Sekunde.

Das Skript hat seit 32 Stunden keinen Fehler, dann stürzt es ab. Die UI ist abgestürzt und mit Fehlermeldung: "shsh kann nicht geöffnet werden: Fehler beim Laden von Shared Libraries: libc.so.6: Shared-Objekt-Datei kann nicht geöffnet werden ..." Ich habe diese Nachricht gegoogled, aber nichts zu meinem gefunden Python-Skript

Ich habe den Speicherstatus des Raspberry Pi überprüft. Der Python-Prozess verwendet etwa 1/4 des gesamten Speichers zur 32. Stunde. Es ist also nicht die Erinnerung, die zum Absturz führt. Außerdem habe ich versucht, es ohne einen Monitor auszuführen, der eine falsche UI-Klasse ohne python.curses starten wird. Der gleiche Unfall passierte zur 32. Stunde.

Jetzt habe ich keine Ahnung, warum das Skript abstürzt.

+0

@StevenRumbalski ja, das ist ein Tippfehler. – flyblade

+0

Welche Version von 'libc' benutzt du, oder ist es' glibc'? – jmunsch

+0

@jmunsch Ich weiß nicht viel darüber. Alles, was ich getan habe, war ein Python-Skript auf einen Raspian Pi 3 mit Rasabian darauf zu laden. Und ich habe nichts gegen das Linux-System getan. – flyblade

Antwort

1

Ich habe einen Stapel von 8 Raspberry Pi arbeitet als Seedbox. Ich war auf den gleichen Fehler gestoßen und die nächste offizielle Antwort, die ich von einem Freund meines raspi-Entwicklers erhielt, war, dass einige ältere Kernel einige inkompatible Fehler mit der Hardware haben. Die Aktualisierung auf die neueste Pixel-Version würde Ihr Problem lösen.

+0

Danke für Ihren Vorschlag. Ich habe das Problem gelöst, indem ich die Struktur meines Programms geändert habe. obwohl das Programm jetzt nicht abstürzt, aber es läuft jetzt viel langsamer. – flyblade

Verwandte Themen