Linux 蓝牙CTL扫描在几个小时后停止工作

Linux 蓝牙CTL扫描在几个小时后停止工作,linux,bluetooth,expect,Linux,Bluetooth,Expect,作为后续工作,我尝试检查我在QtBluetooth中发现的bug是否连接到bluetoothctl。为此,我在循环中运行了这个shell脚本(使用): #!/usr/bin/expect -f set prompt "#" spawn /usr/bin/bluetoothctl expect $prompt send "scan on\r\n" sleep 10 send "scan off\r\n" send "quit\r" expect eof 最终目标是将传感器周围的所有设备连续记录

作为后续工作,我尝试检查我在QtBluetooth中发现的bug是否连接到bluetoothctl。为此,我在循环中运行了这个shell脚本(使用):

#!/usr/bin/expect -f
set prompt "#"

spawn /usr/bin/bluetoothctl
expect $prompt
send "scan on\r\n"
sleep 10
send "scan off\r\n"
send "quit\r"
expect eof
最终目标是将传感器周围的所有设备连续记录一个不确定的时间(以合理的估计,考虑至少24小时的连续操作,每10秒执行一次蓝牙扫描)。 在大约三个小时的成功扫描后,bluetoothctl显示出与链接问题中相同的行为(扫描开始、结束,尽管设备存在且可发现,但未发现任何设备)


是否有任何东西阻止bluetoothctl通过设计来完成此特定任务?如果没有,是否有解决此问题的变通方法?我在Linux机器上运行上述代码,并安装了Ubuntu 18.10

对于那些可能偶然发现相同问题并(错误地)认为这是编程问题的人,我将此作为答案

此问题与
expect
bluetoothctl
都没有直接关系。通过浏览事件日志(dmesg--ctime),我发现,每次出现这种行为时,都会弹出以下行:
Bluetooth:hci0:command tx timeout
,命令编号不同。通过谷歌搜索这个特定的错误,发现它可能与Linux内核本身、蓝牙设备的驱动程序或我的Linux机器的节能选项有关