一、原理

 #!/bin/sh /etc/rc.common指定了执行该脚本的方式(必须)
START=95 代表该脚本的启动顺序为95(注意,不是第95个执行的脚本,而是一个级别)。(数字越小,启动的越早)
start   # 启动服务
stop    # 停止服务
restart # 重启服务
reload  # 重新载入配置文件, 如果失败则重启
enable  # 启用开机自启动, 实际上是在/etc/rc.d/下创建S??和K??开头的软链
disable  # 禁用开机自启动, 实际上是删除/etc/rc.d/下对应的软链

启动顺序

START= 和 STOP= 决定脚本启动时的次序. 启动时init.d会根据文件名顺序, 自动执行在/etc/rc.d中找到的脚本. 初始化脚本可以作为/etc/init.d/下文件的软链放置在/etc/rc.d/.
enable 和 disable 可以自动帮你创建对应的带序号的软链.
这个例子中START=10 会被链接到 /etc/rc.d/S10example, 启动时执行在START=9之后, 在START=11之前. 而STOP=15会被链接到 /etc/rc.d/K15example, 执行在STOP=14之后, 在STOP=16之前. 同一个启动数字的, 按字母顺序启动.

里面内容介绍

boot(),系统启动时会调用boot()
start_service()
stop_service()
restart()

自定义的服务

EXTRA_COMMANDS="custom"
EXTRA_HELP="        custom  Help for the custom command"custom() {echo "custom command"# do your custom stuff
}EXTRA_COMMANDS="custom1 custom2"
EXTRA_HELP=<<EOFcustom1 Help for the custom1 commandcustom2 Help for the custom2 command
EOFcustom1 () {echo "custom1"# do the stuff for custom1
}
custom2 () {echo "custom2"# do the stuff for custom2
}

procd风格的init启动
procd init脚本与sysv风格的启动脚本区别在于
procd方式下, 服务必须以前台方式运行
不同的shebang line: #!/bin/sh /etc/rc.common
指定procd方式的声明 USE_PROCD=1

#!/bin/sh /etc/rc.commonUSE_PROCD=1

二、编写脚本
在/etc/init.d编写脚本

模板

test

#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.orgSTART=95
boot() {# process user commands}start_service() {procd_open_instance#创建一个实例, 在procd看来一个应用程序可以多个实例#ubus call service list 可以查看实例procd_set_param respawn#定义respawn参数,告知procd当binloader程序退出后尝试进行重启procd_set_param command "$BINLOADER_BIN"# binloader执行的命令是"/usr/bin/binloader", 若后面有参数可以直接在后面加上procd_close_instance
#关闭实例
}stop_service() {}restart() {stopstart
}

三、开启自动调用

ln -s /etc/init.d/done /etc/rc.d/S95done
删除软链接取消自动调用
或者
/etc/init.d/test enable
/etc/init.d/test disable

openwrt开机自启动脚本编写相关推荐

  1. CentOS7 开机自启动脚本 chkconfig方式

    Linux设置自启动 sysv-rc-conf - Linux设置开机自动启动 CentOS7 开机自启动脚本 chkconfig方式 chkconfig 设置开机自启动 注意点 自启动脚本放置路径: ...

  2. 麒麟V10sp1轻松设置开机自启动脚本

    大家有没有经常碰到每次开机都需要花费5分钟去手动运行某个脚本的情况,是不是偶尔懒的动手,想开机之后自动运行.比如开机自动新建文件,自动清垃圾,自动打开qq,自动打开微信,自动打开浏览器,自动发送邮件诸 ...

  3. centos开机自启动脚本死循环无法开机解决

    问题: 想写个自启动脚本偷个懒,发现重启之后没有进程,想到可能是脚本里程序执行太快,就写了个死循环测试下,然后偷懒不干了. 设置开机自启动: # 编写一个简单的脚本,刚开始没执行,测试用的 echo ...

  4. [Android]开机自启动脚本和selinux权限配置

    概述 在前段时间的工作中,需要开发一个开机自动启动的脚本,现把开发过程记录一下 主要框架 编写一个可以开机自动启动的脚本,方法就是通过rc文件,在boot_complete=1时,去启动这个服务,那么 ...

  5. linux开发板开机自启动脚本,linux 添加开机自启动脚本

    Linux设置服务开机自动启动的方式有好多种,这里介绍一下通过chkconfig命令添加脚本为开机自动启动的方法. 1. 编写脚本autostart.sh(这里以开机启动redis服务为例),脚本内容 ...

  6. linux使用开机自启动脚本

    如何开机自执行命令 当我们每次开机都需要自己手动敲出命令时,我们会感觉到非常的麻烦(比如nfs挂载).特别是在嵌入式linux开发中,时常常需要开发板和虚拟机之间使用nfs文件互传或者根文件系统挂载的 ...

  7. 开机自启动脚本_Linux配置开机自启动执行脚本的两种方法

    代码来源:oschina 原文作者:醉生梦死zsms 原文链接:https://my.oschina.net/u/3285916/blog/1622358 本文版权归原作者所有,如有侵权请立即与我联系 ...

  8. bash 脚本中激活conda环境_ubuntu18.10目标检测算法环境部署+开机自启动脚本创建screen下的web服务...

    内容概要 cuda+cudnn+python环境安装 ubuntu18的开机自启动脚本 screen服务开启 以我个人的实践来看,把python开发的算法封装成webserver的服务供前端程序调用是 ...

  9. linux添加开机自启动脚本

    一.在/etc/rc.local中添加 如果不想将脚本粘来粘去,或创建链接什么的, 则: step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行; step2. 再在/etc/rc.lo ...

  10. 树莓派Raspberry Pi OS开机自启动脚本

    树莓派Raspberry Pi OS开机自启动脚本 1. 需求和来源 2. 后台运行Python 3. 运行Terminal 1. 需求和来源 想让设备开机后就要运行Python工程文件 那么需设置l ...

最新文章

  1. AI基础:数据增强方法综述
  2. JS语法字典---网友总结
  3. 【算法07】求子数组的最大和
  4. 数据存储与访问之——初见SQLite数据库
  5. MySql存储过程总结
  6. zotero 相关文章链接 (侵权请联系,立即删除)
  7. Siemens 软件下载
  8. 如何让一个未知宽高的div垂直居中
  9. u盘是传播计算机病毒的媒介,u盘病毒有几种传播方式
  10. 被称为偏执的企业家,他成功跻身中国民企500强
  11. FPGA之VGA转HDMI之并行串行转换模块编写
  12. 静态链接之与静态库的链接
  13. 第六章:项目管理的三要素
  14. 【机器学习】实战系列
  15. 说大数据杀熟,这锅可不背!
  16. 可以听歌玩游戏看股票背单词的ROS开发工具?小鱼:就差能点外卖了~
  17. ERP、PLM是什么意思?ERP、PLM有什么内在联系
  18. c++ 三次多项式拟合_从寻找谷神星的过程,谈最小二乘法实现多项式拟合
  19. Mission Planner初学者安装调试教程指南(APM或PIX飞控)3——连接与烧录
  20. android 启动页大小,android引导页大图

热门文章

  1. java十二星座 (快来测试你是什么星座吧)
  2. 详解数据库三大范式、BCNF范式
  3. ubuntu中的 magick++编程问题及编译方法
  4. 眼睛容易干燥疲劳怎么办?
  5. 多平台聚合关键字搜索
  6. PWM是如何调节直流电机转速的?电机正反转的原理又是怎样的?
  7. 《系统分析与设计》个人第二次作业
  8. 谷歌地图的标记样式_如何为Google地图设置样式
  9. google地图瓦片地址
  10. CentOS 6 修改FTP默认端口号