首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >_Robust_蓝牙串口控制台/tty

_Robust_蓝牙串口控制台/tty
EN

Unix & Linux用户
提问于 2015-04-02 17:39:50
回答 1查看 2.2K关注 0票数 2

我已经设法创建并连接到控制台通过蓝牙,这是描述在许多问答的常见问题指南等通过谷歌搜索找到。

简单地说,在sudo模式下,

代码语言:javascript
复制
/usr/sbin/hciconfig hci0 piscan
/usr/bin/sdptool add --channel=3 SP
/usr/bin/rfcomm watch /dev/rfcomm0 3 /sbin/agetty rfcomm0 9600 vt100

如果蓝牙连接是稳定的,那就很好了。

我的问题是如何使无头系统(raspberry pi)更加健壮。如果蓝牙连接丢失,我发现自己不得不重新启动无头系统。系统上可能有几个(非并发的)用户,而且不可避免的是,其中一个用户将离开蓝牙客户端设备而不首先注销,使下一个用户无法登录!

轻微的编辑:一种可能的丑陋工作是监视丢弃的连接,然后终止/重新启动适当的进程。不确定这样做的最佳方法是什么(不确定要杀死的正确进程(在杀死rfcomm之后,无法建立新的连接),也不确定监视正确的东西(tty和/或蓝牙断开连接?)

EN

回答 1

Unix & Linux用户

发布于 2015-04-15 13:33:38

好吧,我自己想出了一个解决方案--这可能不是最理想的,所以我很感激你的评论和建议。

继我的“轻微编辑”之后,我编写了一个脚本来监视rfcomm连接,如果蓝牙断开但tty仍然连接,那么关闭设备上的进程:

check_rfcomm

代码语言:javascript
复制
rfcomm show /dev/rfcomm0 2>/dev/null | grep "channel 3 closed" | grep "tty-attached"
if [ $? -eq 0 ]; then
    kill -9 `lsof -t /dev/rfcomm0`
fi

然后我将脚本添加到crontab中:

代码语言:javascript
复制
* * * * * /usr/local/bin/check_rfcomm >>/var/log/check_rfcomm.log 2>&1

似乎很有效,但测试很小。不知道它有多强壮!

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/194067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档