Ich löse node.js auf einem Raspberry Pi 3 (Debian).Wie LIBUSB_ERROR_BUSY auf Raspberry Pi (Debian) zu lösen Node.js
Ich habe ein kleines Prototyp-Projekt, das Daten von einem ANT + -Sender auf meinem Turbo-Trainer sammelt, der über einen Suunto Movestick USB-Dongle gesendet wird.
Ich verwende das Knotenmodul Ant-Plus
, um das ANT + -Protokoll und ein Skript zu verwalten, das die Daten an die Konsole ausgibt und über die REST-API an den Cloud-Speicher sendet.
Wie auch immer, auf die Jagd schneiden, es war alles gut funktioniert, Start mehr Verfahren und hält ohne Probleme, bis ich den Prozess getötet versehentlich durch ctrl + z
statt ctrl + c
Jetzt schlagen bekomme ich nur die folgende Fehlermeldung, wenn man versucht, mein Skript auszuführen:
/home/pi/ant-plus/node_modules/usb/usb.js:168 this.device .__ claimInterface (this.id) ^
Error: LIBUSB_ERROR_BUSY
at Error (native)
at Interface.claim (/home/pi/ant-plus/node_modules/usb/usb.js:168:14)
at GarminStick2.USBDriver.open (/home/pi/ant-plus/build/ant.js:287:20)
at Object.<anonymous> (/home/pi/ant-plus/sample/cadence-sensor.js:39:12)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
Es scheint, als hätte man, nachdem der Node-Prozess nicht ordnungsgemäß heruntergefahren wurde, festgestellt, dass ein Prozess immer noch mit dem USB verbunden ist.
Ich habe alle möglichen Arten versucht, den Prozess zu töten:
ps | grep <something>
kill <somepid>
killall node
Irgendwie obwohl, ich glaube nicht, es ist der Knoten Prozess, den ich töten müssen, ich „fühlen“, wie ich irgendwie sauber zu müssen die USB-Schnittstelle, aber ich habe keine Ahnung, wie ich das machen würde.
Das Projekt verwendet die node-usb-Bibliothek, aber ich bin nicht sicher, ob das in irgendeiner Weise verwendet werden kann, um Dinge zu bereinigen.
Dank dafür, völlig die Antwort verpasst und nicht zurück zu dem Projekt für eine Weile! –