Mata el proceso que aumenta el dispositivo o el recurso ocupado: '/dev/ttyusb0'?
-
27-10-2019 - |
Pregunta
Me conecto a mi placa Arduino con el siguiente código Python.
device=glob.glob("/dev/ttyUSB*")[0]
time.sleep(1)
arduino = serial.Serial(device, 115200, timeout=5)
Generalmente funciona, pero de alguna manera algún otro proceso debe acceder a la placa después de reiniciarme dándome el error
Serial.SerialUtil.SeriaLException: no se pudo abrir Port/dev/ttyUSB0: [ERRNO 16] dispositivo o recurso ocupado: '/dev/ttyUSB0'
Al desconectar y reemplazar la plug USB, puedo ejecutar el código Python normalmente, sin que ocurra el error. ¿Cómo puedo evitar cualquier otro proceso que bloquee el puerto? ¿Y cómo descubro el motivo de este error?
Solución
Puedes usar
$ fuser /dev/ttyUSB0
Para enumerar los PID de los procesos utilizando el archivo. Alternativamente, si tu fuser
El comando lo admite que puede usar el -k
opción de matarlos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow