修改rcS启动定制功能,后台运行脚本,新建子SHELL进程。

除了在rcS中编写了启动所需的必须功能命令后,我们还可以添加自己的定制功能。方法如下:
首先,在/usr/bin下,编写各个定制功能的脚本。注意修改权限
chmod a+x myscript
在脚本里把需要执行的命令步骤写好。

(chmod的各种权限组合:
chmod [u|g|o|a] [+|-] [r|w|x] myscript

在rcS中,运行各个脚本。
我们知道,
在SHELL中运行命令时,SHELL是被占用的,会等待子进程的返回,SHELL才能再次进入WAITFORCMD状态。

但是如果我们的运行脚本里面是一个循环,这就麻烦了,SHELL将卡死在这里,一直等待子进程返回。

解决办法就是,把子SHELL进程变成后台进程。
运用的SHELL操作符是"&"。
SHELL中,如果申明了子进程是后台进程,那么SHELL创建并启动了子进程后,不会阻塞等待子进程的返回,而是非阻塞,立即回到SHELL中,继续执行下一条命令,如果没有下一条命令了,就进入WAITFORCMD状态。

例如:
我们新建了一个OLED闪烁的脚本go_oled。
i=1
while [ i ]
do
cat /root/logo1.bin > /dev/zed_oled
sleep 2s
cat /root/logo2.bin > /dev/zed_oled
sleep 2s
cat /root/logo3.bin > /dev/zed_oled
sleep 2s
done
这是一个不会退出的循环体。

我们在rcS中加上:
echo “starting oled …”
go_oled &
保存退出。

重启后,可以发现OLED循环播放了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值