用途:按 OpenWrt 实际的 rc.common 与 procd.sh 契约编写、注册和调试 /etc/init.d 初始化脚本,而非套用通用 SysV 假设。
主要能力:区分三类任务——用 procd 托管开机守护进程(USE_PROCD=1,Workflow A);用普通 rc.common 脚本执行一次性启动动作(覆盖 boot(),Workflow B);排查“脚本开机不生效”(Workflow C)。提供 START/STOP 顺序选择、procd 参数、触发器与重载延迟等参考。
使用方式:脚本须以 #!/bin/sh /etc/rc.common 开头,BusyBox ash 环境,无 bash 特性。procd 服务写 start_service(),用 procd_open_instance、procd_set_param command(每个参数一次调用)、procd_set_param respawn、stdout/stderr、procd_close_instance,并以 service_triggers() 注册重载触发器。注册与验证:/etc/init.d/<name> enable、ls -l /etc/rc.d/S99<name>、restart、status、logread | grep -i procd。语法门禁:sh -n /etc/init.d/<name>,可选 shellcheck -s sh。
适用场景:开机守护进程、一次性启动修复、启动顺序与依赖排查、procd 崩溃重启与重载行为分析。
限制:需在目标设备或镜像清单上确认环境;无法接触设备时只能标记为仅构建验证,不得声称已通过开机测试。USE_PROCD=1 脚本中不要定义 start()/stop();不要手写 /etc/rc.d 链接;默认 reload 等同 restart;respawn 默认 3600/5/5,连续失败 5 次后放弃。首次启动 UCI 默认值、镜像打包与自动启用、刷机恢复、硬件验证等超出范围,应转交相应技能。资料未提供具体收费与平台信息。