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=1  
  

START=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
            done
           
      fi
}

restart(){                   # restart 重启服务,综合了 start 和 stop
    stop 
    start 
}
按键:Esc     (进入命令模式)
退出保存  :wq   (冒号+wq)
  1. 为服务配置权限
ls -l   # 查看权限,可忽略此命令

chmod a+x muxiu   # 为服务配置执行权限
  1. 建立软连接
/etc/init.d/muxiu  enable    # enable是默认建立软连接

enable 会在rc.d里创建一个 S开头的服务启动文件和 K 开头的服务关闭文件(这个 K 开头的文件,取决于你是否配置了服务的关闭设置,也就是 muxiu 服务配置里的 STOP=82,START 和 STOP 这个是程序启动顺序和关闭顺序,程序的运行时需要排队)

注意:这里必须是服务的绝对路径,否则报错

  1. OpenWrt的服务启动命令
/etc/init.d/muxiu  start       # 传递启动服务参数 start

/etc/init.d/muxiu  stop        # 传递结束服务参数 stop

/etc/init.d/muxiu  restart     # 传递重启服务参数 restart

                                          END
阅读 516

蜉蝣天地,沧海一粟,百无禁忌

14 声望
0 粉丝
0 条评论

蜉蝣天地,沧海一粟,百无禁忌

14 声望
0 粉丝
文章目录
宣传栏