Estou tentando conectar manualmente entre meu laptop e telefone. Eu tenho bluez-utils
a versão 4.98-2ubuntu7
instalada. Quando 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 com meu telefone. Depois de inserir a senha quando solicitado, o dispositivo é autorizado. Agora posso enviar arquivos para o laptop a partir do meu telefone. No entanto, o aplicativo trava após a autorização da solicitação e o controle não é repassado ao terminal.
Por que isso está acontecendo? Como faço para recuperar o controle?
Isso parece ser contrário aos exemplos que vi na Internet, onde o terminal fica disponível após autorização para executar comandos adicionais.
Sei que executá-lo em segundo plano é uma solução possível, mas como preciso executar algumas outras tarefas após a conclusão do emparelhamento, prefiro que 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 seja concluído (ou 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?
Responder1
Esta é apenas uma solução alternativa para o problema. Quaisquer sugestões sobre como resolver o problema real da bluetooth-agent
estagnação são bem-vindas.
Eu costumava stdbuf
desativar o buffer de linha STDOUT
ao executar bluetooth-agent
em segundo plano. Isso atualiza o arquivo de log em tempo real, permitindo-me verificar e acionar o restante das atividades que precisam ser realizadas.
stdbuf -o 0 bluetooth-agent "$PIN" 1> ./bluelog &