【发布时间】:2018-03-01 18:23:06
【问题描述】:
我为运行 debbian jessie armbian 8.1 的板创建了一个启动 linux 脚本,我需要在启动时在通过 USB 接口连接到它的调制解调器中运行命令。 我已将脚本放入 rc.local:
#!/bin/sh -e
cd /home/user/Script/
sh script.sh
exit 0
在文件夹 Script 我有一个脚本:
#!/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)
我做错了什么?
【问题讨论】:
-
文件的权限是否正确(运行脚本的用户对所有内容都有读取权限)?您能否将
set -x; exec 2>>/tmp/minicom-rc.log; date +"$0 %c" >&2添加到rc.d脚本的开头以进行调试,并报告您在日志中看到的内容?将其划分为需要绝对路径名的单独脚本相当笨拙,如果至少您的用户脚本可以嵌入minicom命令序列会更好。 -
@tripleee 感谢您的回答。用户对所有内容都有读取权限。我按照您的建议进行调试,在我上面更新的帖子中,您可以看到相关的日志文件。错误似乎是没有光标移动能力(厘米),但不知道如何解决。
-
我猜这与启动过程中没有终端有关。也许在开始
minicom之前尝试export TERM= linux-c-nc。 -
...
=后面没有空格 -
如果这不起作用,不妨考虑将
minicom替换为设计 用于脚本使用的东西,例如chat。
标签: linux shell startup at-command