Por que o agente bluetooth fica preso na autorização?

2

Estou tentando conectar manualmente entre meu laptop e telefone. Eu tenho bluez-utils versão 4.98-2ubuntu7 instalado. Quando eu executo o agente no terminal, recebo:

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>

A linha de solicitação de código PIN é impressa quando tento emparelhar do meu telefone. Depois de inserir a chave de acesso ao ser solicitado, o dispositivo é autorizado. Agora posso enviar arquivos para o laptop do meu celular. No entanto, o aplicativo fica paralisado após a autorização do pedido e o controle não é passado de volta para o terminal.

Por que isso está acontecendo? Como eu volto o controle?

Isto parece ser contrário aos exemplos que tenho visto em toda a Internet, onde o terminal fica disponível após a autorização para executar comandos adicionais.

Eu sei que executá-lo em segundo plano é uma solução possível, mas como preciso executar outras tarefas depois que o pareamento estiver concluído, prefiro que ele seja executado em primeiro plano.

Eu tentei usar isso:

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

No entanto, o processo não grava sua saída no arquivo até que ele seja concluído (ou seja eliminado), portanto, não posso testar a saída em bluelog . Existe uma maneira de forçar o processo a gravar a saída antes da conclusão?

    
por asheeshr 06.10.2013 / 18:01

1 resposta

0

Esta é apenas uma solução para o problema. Quaisquer sugestões sobre como lidar com o problema real de bluetooth-agent stalling são bem vindas.

Eu usei stdbuf para desativar o buffer de linha de STDOUT ao executar bluetooth-agent no plano de fundo. Isso atualiza o arquivo de log em tempo real, permitindo-me verificar e acionar o restante das atividades que precisam ser feitas.

stdbuf -o 0 bluetooth-agent "$PIN" 1> ./bluelog &
    
por 07.10.2013 / 17:25