J'ai un script Python 2.7 en cours d'exécution sur un Raspberry Pi 3.script python se bloque après une longue durée
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 ce qu'il fait est d'envoyer un message par UART à une puce, d'obtenir un message de réponse, mise à jour consignez les fichiers et imprimez-les sur l'interface utilisateur (une interface utilisateur s'affiche sur le moniteur créé par les curseurs python). Il le fait toutes les secondes.
Le script n'a pas de bogue en cours d'exécution pendant 32 heures puis il se bloque. L'interface utilisateur est écrasée et recouverte d'un message d'erreur: "impossible d'ouvrir shsh: erreur lors du chargement des bibliothèques partagées: libc.so.6: impossible d'ouvrir le fichier objet partagé ..." J'ai googlé ce message mais je n'ai trouvé aucun élément lié à mon script python
J'ai vérifié l'état de la mémoire du Raspberry Pi. Le processus python utilise environ 1/4 de la mémoire totale à la 32e heure. Ce n'est donc pas la mémoire qui provoque le crash. Aussi, j'ai essayé de l'exécuter sans moniteur, ce qui lancera une fausse classe d'IU sans python.curses. même accident est arrivé à la 32e heure. Maintenant, je n'ai aucune idée de la raison pour laquelle le script se bloque.
@StevenRumbalski oui, c'est une faute de frappe. – flyblade
Quelle version de 'libc' utilisez-vous, ou est-ce' glibc'? – jmunsch
@jmunsch Je ne sais pas grand-chose à ce sujet. Tout ce que j'ai fait était de charger un script python sur un Raspberry Pi 3 avec Rasabian dessus. Et je n'ai rien fait pour le système Linux. – flyblade