블루투스 에이전트가 승인하는 데 멈춘 이유는 무엇입니까?

블루투스 에이전트가 승인하는 데 멈춘 이유는 무엇입니까?

노트북과 휴대폰을 수동으로 연결하려고 합니다. 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 &

관련 정보