Crontab脚本不执行串行命令



我试图让我的脚本工作,这应该得到执行时,我的Beaglebone开始。如果我在终端中执行命令,一切正常。如果我重新启动Beaglebone,脚本也可以正常工作。但是,如果我关闭电源并重新启动它,除了通过串行接口的命令外,一切都在工作。

我的定时任务:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin/:/bin:/usr/sbin:/usr/binusr/bin
@reboot /bin/bash /usr/bin/script.sh

我的脚本:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binusr/bin
export DISPLAY=:0.0
/bin/stty -F /dev/ttyO1 raw
sleep 0.2
/bin/stty -F /dev/ttyO1 38400
sleep 0.2
echo 'ont' > /dev/ttyO1
echo "test"
exit 0

我也试过rc。本地但未成功

确认您没有触及任何SELinux权限。试着拿下"盾牌",意思是"setenforce 0",再试一次,看看它是否有效。(然后返回setenforce 1)

如果在SELinux关闭的情况下达到了目的,那么您必须通过检查审计日志来设计如何绕过某些权限。观察/var/log/audit/*发生了什么,然后阅读audit2why和audit2allow来修改特定的权限。

/bin/stty -F /dev/ttyO1 -echo

解决问题

最新更新