×

Linux Raspberry Pi

openwrt自动启动脚本

Kalet Kalet 发表于2021-01-16 15:43:12 浏览841 评论0

抢沙发发表评论

转自:https://zhangjianfa.blog.csdn.net/article/details/88317879


openwrt 的启动脚本源程序放在“/etc/init.d/”目录下,打开文件夹可以看到已经有了许多的脚本存在。

我们可以看一个简单的例子:

root@openwrt:/etc/init.d# cat done
 

  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2006 OpenWrt.org
  3. START=95
  4. boot() {
  5. [ -d /tmp/root ] && mount_root done
  6. block mount
  7. # process user commands
  8. [ -f /etc/rc.local ] && {
  9. sh /etc/rc.local
  10. }
  11. # set leds to normal state
  12. . /etc/diag.sh
  13. set_state done
  14. }

如代码所示,第一行 #!/bin/sh /etc/rc.common指定了执行该脚本的方式(必须)

第二行 只是一个注释行,不会执行。

第三行 START=95 代表该脚本的启动顺序为95(注意,不是第95个执行的脚本,而是一个级别)。(数字越小,启动的越早)

第四行 boot() 就是脚本中定义的函数,具体学习shell脚本。

          一般来说每个启动脚本需要包含 start、stop两个函数,以用于系统自动调用。

要使脚本在系统启动后自动别调用的话还需要创建软链接到 ”/etc/rc.d”目录下,如以上文件需要创建如下链接:

ln -s /etc/init.d/done /etc/rc.d/S95done

或者使用系统方法

/etc/init.d/done enable

将会自动创建对应的软链接。

同样的可以删除软链接或者使用disable取消脚本的自动启动。

群贤毕至

访客