OpenWRT开机自启动服务通过procd来管理,ubuntu通过systemd管理
OpenWrt开机启动服务实现和普通Linux发行版并无明显差异,基本上就是/etc/init.d和/etc/rc.d两个目录在起关键作用。/etc/init.d目录存放的是所有的开机启动脚本(包含启动和未启用的服务),/etc/rc.d存放的是启用的(Enabled)开机启动脚本。只有enabled的service才可以通过软连接放到/etc/rc.d.
服务的启用和禁用可以通过service enable/disable命令来实现。
虽然通过/etc/rc.local脚本也可以实现创建开机启动脚本,但并不推荐。首先开机启动的顺序不可控、管理混乱、其次违背了openwrt service的规则。通常作为service通常需要具备start、stop、restart、enable、disable几大操作,rc.local仅仅提供了start的操作。假如我们把/etc/rc.local打包到package的话会导致管理混乱,rc.local是全局性的开机启动脚本并不属于某个package。 /etc/rc.local是最后被执行的,隶属于S95done。rc.local不适合放用户层面的文件
发现,在/etc/init.d与/etc/rc.d下面有相同的gpid_switch文件。