|
|
本帖最后由 superzjg 于 2024-12-16 16:21 编辑
启动脚本,就是位于/etc/init.d目录的文件,举例新建文件 /etc/init.d/abcd
然后 chmod +x /etc/init.d/abcd 给执行权限,此时 openwrt的 系统 -启动项 可以看到,并配置自启、启动、重启、停止。
也可以用命令开启自启动:/etc/init.d/abcd enable
脚本简易模板,二选一即可,适应于没有使用openwrt UCI 配置的情况,启动一个speedtest-web可执行文件例子。
1、常规模板:
- #!/bin/sh /etc/rc.common
- START=99 #启动顺序
- exec_file=/usr/bin/speedtest-web
- start() {
- pid=`pidof speedtest-web` #启动前确认是否残留
- [ -n "$pid" ] && kill -9 $pid #若有,使用-9信号强制退出
- [ -x "${exec_file}" ] || chmod 755 ${exec_file} #确认二进制执行权限
- PARAM="-p 8989" #启动参数
- ${exec_file} $PARAM >/dev/null 2>&1 & #最后的&建议保留启动并驻后台,但没有系统守护
- logger -t 'speedtest-web' 'Started.' #系统日志(非必要)
- }
- stop() {
- killall speedtest-web 2>/dev/null #停止进程,使用默认信号安全退出
- logger -t 'speedtest-web' 'Stopped.'
- }
复制代码
2、守护服务模板:
- #!/bin/sh /etc/rc.common
- START=99
- USE_PROCD=1 #使用守护
- exec_file=/usr/bin/speedtest-web
- start_service() {
- [ -x "${exec_file}" ] || chmod 755 ${exec_file} #确认二进制执行权限
- PARAM="--listen_port 8989"
-
- procd_open_instance #注册守护
- procd_set_param command $exec_file #执行文件
- procd_append_param command $PARAM #执行参数
- procd_set_param respawn #默认守护参数(重启5次)
- procd_close_instance #结束注册
- }
- service_triggers() {
- procd_add_reload_trigger "speedtest-web"
- }
- # stop_service() {
- #这里是停止服务后的要执行的其他任务,若没有就删除stop_service函数,切记不要留空
- #此方式不需要自己写命令结束进程,PROCD会自己结束,先使用常规信号,结束不掉它也会使用 -9 信号
- # }
复制代码
防火墙放行端口,就是 防火墙 - 通信规则 新建入站规则,教程很多,自己搜搜,不赘述了。
|
|