OpenWrt 开机自启动脚本制作教程
1./etc/rc.d/和/etc/init.d这两个目录的作用
/etc/init.d/(相当于rc.d的模板库)
作用:这个目录包含了各种服务的启动和停止脚本。这些脚本用于管理系统服务的启动、停止、重启等操作。
脚本功能:每个脚本通常会响应 start、stop、restart 和 reload 等命令,以管理特定服务。
例如,/etc/init.d/network 脚本用于管理网络服务的启动和停止
/etc/rc.d/
作用:包含指向 /etc/init.d/ 中脚本的符号链接。这些链接以 S(启动)或 K(停止)开头,后跟一个数字表示 执行顺序。
启动顺序:系统启动时,会按照这些符号链接的顺序执行脚本。以 S 开头的脚本会按照数字大小从小到大被依次执行以启动服务,在系统关机或重启时,以 K 开头的脚本会按照数字大小从大到小被依次执行以停止服务。
2. openwrt系统脚本启动顺序:
在OpenWrt系统中,脚本的启动顺序通常由/etc/rc.local
文件和/etc/rc.d
目录中的脚本来控制。以下 是一些常见的启动顺序:
1./etc/rc.d:这个目录中的脚本会按照文件名的字母顺序执行。例如,S01-脚本名会在S02-脚本名之前执行。
2./etc/rc.local:这个脚本文件会在/etc/rc.d脚本执行完后执行。(不利于管理,仅作测试或者一些简单命令的启动,其他不要使用)
3.脚本必备五大方法:启动方法(start),停止方法(stop),自启方法(enable),取消自启方法(disable),重启服务方法(restart)
ps:在脚本首行加上#!/bin/sh /etc/rc.common后我们只需要写start和stop方法即可,其他方法会自动从rc.common脚本中继承,具体见下面的例子
4.例子
1.创建脚本
touch /etc/init.d/my_custom_service
2.配置脚本可执行权限
chmod +x /etc/init.d/my_custom_service
3.编写脚本
#!/bin/sh /etc/rc.common
START=99
STOP=10
start() {
echo "Starting my custom service..."
# 在这里添加启动服务的命令,例如:
# 启动 my_custom_service 程序,并将其放到后台运行,&:这个符号表示将命令放到后台运行
# /usr/bin/my_custom_service &
}
stop() {
echo "Stopping my custom service..."
# 在这里添加停止服务的命令,例如:
# killall my_custom_service
}
# 常用命令
启动脚本:my_custom_service start
停止脚本:my_custom_service stop
开机自启:my_custom_service enable
取消开机自启:my_custom_service disable
重启服务:my_custom_service restart