openwrt 实现对shell脚本的守护处理

实现方法:https://whycan.com/t_6092.html

 

cat /etc/init.d/S99ledblink

复制代码
#!/bin/sh

case "$1" in
        start)
                printf "Starting led: "
                start-stop-daemon -S -b -x /usr/bin/ledblink.sh
                [ $? = 0 ] && echo "OK" || echo "FAIL"
                ;;
        stop)
                printf "Stopping led: "
                kill $(ps aux | grep '/usr/bin/ledblink.sh' | grep -v 'grep' | awk '{print $1}')
                [ $? = 0 ] && echo "OK" || echo "FAIL"
                ;;
        restart|reload)
                $0 stop
                $0 start
                ;;
        *)
                echo "Usage: $0 {start|stop|restart}"
                exit 1
esac

exit 0
复制代码

/usr/bin/ledblink.sh

复制代码
#!/bin/sh

if [ ! -f /sys/class/gpio/gpio356/direction ]; then
        echo 356 > /sys/class/gpio/export
fi

echo out > /sys/class/gpio/gpio356/direction

while [ 1 ]; do
        echo 0 > /sys/class/gpio/gpio356/value
        sleep 0.5
        echo 1 > /sys/class/gpio/gpio356/value
        sleep 0.5
done;
复制代码

 

posted @   cogitoergosum  阅读(279)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示