Tuer le processus qui soulève l'appareil ou occupé ressource: « / dev / ttyUSB0 »?
-
27-10-2019 - |
Question
Je me connecte à mon Arduino avec le code Python suivant.
device=glob.glob("/dev/ttyUSB*")[0]
time.sleep(1)
arduino = serial.Serial(device, 115200, timeout=5)
Il fonctionne en général, mais en quelque sorte un autre processus doit être accéder à la carte après le redémarrage me donner l'erreur
serial.serialutil.SerialException: Impossible d'ouvrir le port / dev / ttyUSB0: [Errno 16] périphérique ou une ressource occupée: '/ dev / ttyUSB0'
Lorsque déconnectant et reconnectant la prise USB je peux exécuter le code Python normalement, sans erreur survenant. Comment puis-je éviter tout autre processus bloquant le port? Et comment puis-je trouver la raison de cette erreur?
La solution
Vous pouvez utiliser
$ fuser /dev/ttyUSB0
à la liste des PID des processus en utilisant le fichier. Par ailleurs, si votre commande fuser
le prend en charge, vous pouvez utiliser l'option -k
pour les tuer.