Linux 分支 OpenWrt (嵌入式Linux系统)的自启动服务详解

版本: Linux 分支 OpenWrt(嵌入式Linux系统)
Linux version 3.18.29
gcc version 4.8.3
OpenWrt/Linaro GCC 4.8-2014.04 unknown
该版本的 OpenWrt 的自启动服务是以 init.d 里面的自启动配置文件来启动的
步骤:

  1. 创建一个服务,如 muxiu
cd /etc/init.d vi muxiu # 不需要任何后缀名,对于 shell 解释器来说,有没有后缀,其实在于开头的选择的解释器代码,如shell语言的 bash 解释器 #!/bin/sh

测试:muxiu 服务文件代码
#!/bin/sh /etc/rc.common USE_PROCD=1START=18 STOP=82 start_service() {# 启动服务 procd_open_instance procd_set_param command /usr/bin/python /muxiu/muxiu/muxiu/test.py # 全部关联的文件必须是绝对路径,否则会找不到文件 procd_set_param respawn procd_close_instance}stop_service() {# 停止服务local process_pid="" process_pid=`ps -w | grep -w "/muxiu/muxiu/muxiu/test.py" | grep -v grep| awk '{print $1}'` if [ -n "${process_pid}"]# 非空判断 then for i in $process_pid do echo "Killing the process_pid [ $i ]"# kill掉所有的进程 kill -9 $i if [ "$?" -eq 0 ] then echo "killed pid "$i" success" else echo "kill failed" fi donefi }restart(){# restart 重启服务,综合了 start 和 stop stop start }

按键:Esc(进入命令模式) 退出保存:wq(冒号+wq)

  1. 为服务配置权限
ls -l# 查看权限,可忽略此命令chmod a+x muxiu# 为服务配置执行权限

  1. 建立软连接
/etc/init.d/muxiuenable# enable是默认建立软连接

enable 会在rc.d里创建一个 S开头的服务启动文件和 K 开头的服务关闭文件(这个 K 开头的文件,取决于你是否配置了服务的关闭设置,也就是 muxiu 服务配置里的 STOP=82,START 和 STOP 这个是程序启动顺序和关闭顺序,程序的运行时需要排队)
【Linux 分支 OpenWrt (嵌入式Linux系统)的自启动服务详解】注意:这里必须是服务的绝对路径,否则报错
  1. OpenWrt的服务启动命令
/etc/init.d/muxiustart# 传递启动服务参数 start/etc/init.d/muxiustop# 传递结束服务参数 stop/etc/init.d/muxiurestart# 传递重启服务参数 restart

END

    推荐阅读