我为一个运行debbian jessie armbian 8.1的电路板创建了一个启动linux脚本,我需要在启动时通过USB接口连接到它的调制解调器中运行命令。 我已将脚本放在rc.local中:
#!/bin/sh -e
cd /home/user/Script/
sh script.sh
exit 0
在脚本文件夹中我有一个脚本:
#!/bin/sh
minicom -S at_command.txt
at_command包含:
send at+creg=1
send exit
! killall minicom
问题是,当我手动运行脚本时,它可以正常工作。
但是,当我启动电路板时,at命令不会执行
由于该板是debian,我也遵循链接http://www.stuffaboutcode.com/2012/06/raspberry-pi-run-program-at-start-up.html并调整脚本以根据LSBInitScripts运行但行为相同,
当手动运行sudo /etc/init.d/myScript start
时,一切正常,但在linux启动后没有执行at_command。
我在rc.local中添加了以下用于调试的命令:
set -x;
exec 2>>/home/user/Script/minicom-rc.log;
date +"$0 %c" >&2
在生成的日志文件中,我得到了打印输出:
+ date +/etc/rc.local %c
/etc/rc.local Fri 02 Mar 2018 04:02:43 PM EET
+ cd /home/user/Script/
+ sh script.sh
No cursor motion capability (cm)
我做错了什么?
答案 0 :(得分:0)
在这种情况下,您可以使用我的atinout程序,该程序是专门用于从命令行向调制解调器发送AT命令的程序(假设调制解调器是/ dev / ttyUSB0):
echo at+creg=1 | atinout - /dev/ttyUSB0 -
或可能
atinout /home/user/at_commands.txt /dev/ttyUSB0 /dev/null