Warum bleibt der Bluetooth-Agent bei der Autorisierung hängen?

Warum bleibt der Bluetooth-Agent bei der Autorisierung hängen?

Ich versuche, manuell eine Verbindung zwischen meinem Laptop und meinem Telefon herzustellen. Ich habe bluez-utilsdie Version 4.98-2ubuntu7installiert. Wenn ich den Agenten auf dem Terminal ausführe, erhalte ich:

asheesh@U32U:~$ sudo bluetooth-agent 4835
Pincode request for device /org/bluez/980/hci0/dev<id>
Authorizing request for /org/bluez/980/hci0/dev<id>

Die PIN-Code-Anforderungszeile wird gedruckt, wenn ich versuche, von meinem Telefon aus eine Verbindung herzustellen. Nachdem ich den Passkey nach entsprechender Aufforderung eingegeben habe, wird das Gerät autorisiert. Ich kann jetzt Dateien von meinem Telefon an den Laptop senden. Allerdings bleibt die Anwendung nach der Autorisierungsanforderung hängen und die Kontrolle wird nicht an das Terminal zurückgegeben.

Warum passiert das? Wie bekomme ich die Kontrolle zurück?

Dies scheint im Widerspruch zu Beispielen zu stehen, die ich im Internet gesehen habe, wo das Terminal nach der Autorisierung zum Ausführen weiterer Befehle verfügbar wird.

Mir ist bewusst, dass die Ausführung im Hintergrund eine mögliche Lösung ist, aber da ich nach Abschluss der Kopplung bestimmte andere Aufgaben ausführen muss, würde ich es lieber im Vordergrund laufen lassen.

Ich habe versucht, dies zu verwenden:

bluetooth-agent "$PIN" 1> ./bluelog #Background run tested also

Der Prozess schreibt seine Ausgabe jedoch erst in eine Datei, wenn er abgeschlossen ist (oder beendet wird), sodass ich die Ausgabe nicht testen kann bluelog. Gibt es eine Möglichkeit, den Prozess zu zwingen, vor Abschluss eine Ausgabe zu schreiben?

Antwort1

Dies ist lediglich eine Umgehung des Problems. Alle Vorschläge zur Lösung des eigentlichen Problems des bluetooth-agentAbwürgens sind willkommen.


Normalerweise deaktiviere ich die stdbufZeilenpufferung, STDOUTwenn sie bluetooth-agentim Hintergrund ausgeführt wird. Dadurch wird die Protokolldatei in Echtzeit aktualisiert, sodass ich die restlichen erforderlichen Aktivitäten überprüfen und auslösen kann.

stdbuf -o 0 bluetooth-agent "$PIN" 1> ./bluelog &

verwandte Informationen