인증 시 Bluetooth 프록시가 중단되는 이유는 무엇입니까?

인증 시 Bluetooth 프록시가 중단되는 이유는 무엇입니까?

노트북과 휴대폰을 수동으로 연결하려고 합니다. bluez-utils버전을 설치했습니다 4.98-2ubuntu7. 터미널에서 에이전트를 실행하면 다음을 얻습니다.

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>

전화를 통해 페어링하려고 하면 핀코드 요청 라인이 인쇄됩니다. 메시지가 표시될 때 비밀번호를 입력하면 장치가 인증됩니다. 이제 휴대폰에서 노트북으로 파일을 보낼 수 있습니다. 그러나 요청을 승인한 후 애플리케이션이 중단되고 제어권이 터미널로 다시 전달되지 않습니다.

왜 이런 일이 발생합니까? 통제력을 회복하려면 어떻게 해야 합니까?

이는 추가 명령 실행 권한이 부여될 때까지 터미널을 사용할 수 없는 인터넷에서 본 예와 반대되는 것 같습니다.

백그라운드에서 실행하는 것이 가능한 해결책이라는 것을 알고 있지만 페어링이 완료된 후 다른 작업을 실행해야 하기 때문에 포그라운드에서 실행하는 것을 선호합니다.

나는 이것을 사용하려고합니다 :

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

그러나 프로세스는 완료(또는 종료)될 때까지 파일에 출력을 쓰지 않으므로 테스트할 수 없습니다 bluelog. 프로세스가 완료되기 전에 강제로 출력을 쓰도록 하는 방법이 있습니까?

답변1

이것은 문제에 대한 해결책일 뿐입니다. bluetooth-agent실제 지연 문제를 해결하는 방법에 대한 제안을 환영합니다.


나는 백그라운드에서 실행되는 동안 stdbuf라인 버퍼링을 비활성화하곤 했습니다. 이렇게 하면 로그 파일이 실시간으로 업데이트되므로 완료해야 하는 나머지 활동을 검사하고 트리거할 수 있습니다.STDOUTbluetooth-agent

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

관련 정보