树莓派 3B+ 虚拟 USB 串口硬件(USB CDC ACM)是否存在判断,以及启动相应的程序

硬件: 树莓派 Raspberry 3B+  

系统: Raspbian GNU/Linux 9 (stretch)

内核: Linux raspberrypi 4.14.93-v7+ #1189 SMP, armv7l GNU/Linux

说明: 改用 linux C 程序优化实现此 shell 功能, 参见 "LINUX USB 多串口通讯之二: 动态获取当前所有 USB 串口设备通道名称"


脚本内容

$vi /var/www/html/bt5net/check_ttyACM_and_run_serial.sh


#!/bain/sh

flag_ttyACM8=$(ls /dev/ttyACM8 | grep -v "grep" | wc -l)
if [ $flag_ttyACM8 -ge "1" ]
then
	sudo shutdown -r now
fi

flag_ttyACM9=$(ls /dev/ttyACM9 | grep -v "grep" | wc -l)
if [ $flag_ttyACM9 -ge "1" ]
then
	sudo shutdown -r now
fi

flag_ttyACM=$(ls /dev/ttyACM* | grep -v "grep" | wc -l)
if [ $flag_ttyACM -ge "1" ]
then
        echo $flag_ttyACM
        flag_serial=$(ps -aux | grep "serial_ttyACM" | grep -v "grep" | wc -l)
        if [ $flag_serial -ge "1" ]
        then
                echo "serial_ttyACM process exists, and can not reload!"
        else
                /var/www/usb-nrf52840/c-code/serial-sqlite3/serial_ttyACM
        fi
else
        echo "NOt USB-CDC-ACM DEVICE"
fi

系统 crontab 定时启动上述脚本

$ crontab -e

// 添加内容, 每2分钟检查一次
*/2 *  *   *   *     sh /var/www/html/bt5net/check_ttyACM_and_run_serial.sh

扩展

linux sheel 中符号表示:

大于        -gt (greater than) 
小于        -lt (less than) 
大于或等于   -ge (greater than or equal) 
小于或等于   -le (less than or equal) 
不相等       -ne (not equal)
crontab 工作指令字段说明

每项工作有六个字段分别是:
分钟    小时    日期    月份    周    指令
0-59    0-23    1-31   1-12    0-7  指令         #0和7都代表星期天
辅助特殊字符:
* (星号)代表任何时刻
,(逗号)代表分隔时候。如3点与6点 就是3,6
-(减号)代表一段时间范围内。如:3点到6点 就是3-6
/n(斜线)n代表数字,即每隔n单位。如每隔五分钟,/5

--------------------------------------------------

crontab参数:
-u:只有root才可能,帮其他用户建立或移除工作排程。
-l:查阅crontab的工作内容
-r:移除所有的crontab的工作内容,移除一项,用-e编辑。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值