简介

Openwrt 支持模块化编程,增加新功能非常简单。但是一些基础模块必须包含, 它们是OpenWrt核心。如:实用基础库libubox、系统总线ubus、网络接口管理模块netifd、核心工具模块ubox、服务管理模块procd。

在OpenWRT系统内init进程procd取代,procd作为父进程可以监控子进程的状态。一旦子进程退出后即可在某一个时刻尝试进行重启进程。它通过init脚本来将进程信息加入到procd的数据库中来管理进程启动,这是通过ubus总线调用来实现,可以防止进程的重复启动调用. 在OpenWRT系统内使用procd监控的有uhttpd, netifd等。在/etc/init.d/文件夹内的启动文件带有USE_PROCD=1标志.

procd的进程管理功能主要包含3个部分:

  • reload_config: 检查配置文件是否发生变化,如果有变化则通知procd进程;
  • procd守护进程: 接收使用者的请求,增加或删除所管理的进程,并监控进程的状态,如果发现进程退出,则再次启动进程;
  • procd.sh: 提供函数封装procd提供系统总线方法,调用者可以非常便利的使用procd提供的方法;

以启动脚本为例:

#!/bin/sh /etc/rc.common
# /etc/init.d
# Copyright (C) 2008 OpenWrt.org   # 执行的顺序,在/etc/rc.d目录下自动生成S98xxx,K98xxxx,按照顺序执行。
START=98
STOP=98# 使用procd启动
USE_PROCD=1DAEMON=main
PROG=/usr/bin/$DAEMONCONFIG=mqtt
CONFIGFILE=/etc/config/$CONFIG# 向 procd 注册并启动服务,是将在 services 所管理对象里面增加了一项
start_service() {echo "start user service!"# 开始增加一个名为mqtt的服务实例, 在procd看来一个应用程序可以多个实例# ubus call service list 可以查看实例procd_open_instance mqtt#定义respawn参数,进程意外退出的重启机制及策略# threshold:异常失败边界值3600;timeout:重启延迟时间5;retry:失败重启次数5# procd_set_param respawn retry=10procd_set_param respawn 3600 5 10# 执行的命令是"/usr/bin/main", 若后面有参数可以直接在后面加上procd_set_param command $PROG '&'# 配置文件名,比较其文件内容是否改变# procd_set_param file $CONFIGFILE# 绑定的网络设备(探测 ifindex 更改)# netdevs=# procd_set_param netdev $netdevs# 指定对应的pidfile# procd_set_param pidfile /var/run/${DAEMON}.pid# 完成进程实例的增加procd_close_instance
}# 让 procd 解除注册,并关闭服务, 是将在 services 中的管理对象删除
stop_service() {echo "stop user service!"# rm -f /var/run/${DAEMON}.pid# service_stop "$PROG"killall $DAEMON
}# 重启服务,如果定义了该函数,在 reload 时将调用该函数,否则再次调用 start 函数
reload_service(){echo "reload user service!"stopstart
}# 配置文件或网络接口改变之后触发服务重新读取配置
service_triggers(){echo "triggers user service!"procd_add_reload_trigger $CONFIG
}# 用于判断进程是否启动成功
# service_started(){# }restart() {stopstart
}

参考文章

  1. OpenWrt 基础软件模块之procd
  2. procd init script parameters
  3. How to write a procd init script?
  4. openwrt之procd进程管理服务
  5. 使用procd执行进程

OpenWRT之procd服务相关推荐

  1. 适合于初学者—软路由全探索系列(三):探索旁路由/软路由 OpenWrt 系统 PassWall 服务应用

    适合于初学者-软路由全探索系列(三):探索旁路由/软路由 OpenWrt 系统 PassWall 服务应用 一.获得订阅链接 二.OpenWrt 中的 PassWall 设置 1.打开 PassWal ...

  2. openWrt启动mDNS服务

    openWrt启动mDNS服务 引言:一般情况下,openwrt会自动启动mDNS服务的,但由于我刷写的镜像的问题,我的openWrt并没有启动mDNS这个守护进程.在解决这个问题的过程中遇到一些问题 ...

  3. openwrt开启文件服务器失败,OpenWrt搭建文件共享服务(NAS)

    1. 硬盘挂载 1.1 安装USB.fs的内核模块 opkg update opkg install kmod-usb-core kmod-usb-storage kmod-usb-ohci kmod ...

  4. Openwrt 开启openvpn服务访问内网

    具体设置网上有很多,本篇仅记录如何设置访问内网网段.其实很简单,首先openvpn路由 可以使用 option push 'route  192.168.1.0  255.255.255.0'  #内 ...

  5. Openwrt procd守护进程

    通常的嵌入式系统均有一个守护进程,该守护进程监控系统进程的状态,如果某些系统进程异常退出,将再次启动这些进程.procd 就是这样一个进程,它是使用C语言编写的,一个新的 OpenWrt 进程管理服务 ...

  6. Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(四)花生壳服务

    在第一章中已经提到,在花生壳网站注册一个账号,将会得到一个免费的域名.这一章介绍一下如何更新域名的IP映射. 花生壳官方网站看到这样一个更新域名IP的方法: 只要将上面的网址中的username,pa ...

  7. OpenWRT 学习笔记 -- 用户自定义添加app的开机自启动

    参考自:OpenWRT编译 – 用户自定义添加app的开机自启动 OpenWRT 学习笔记-19 OpenWRT开机自启动服务 文章目录 一.概述 二.自启动实现方式一 三.自启动实现方式二 四.自启 ...

  8. openwrt 格式化_OPENWRT路由固件入门食用教程S2:磁盘挂载及分区,网络共享,脱机下载。...

    OPENWRT路由固件入门食用教程S2:磁盘挂载及分区,网络共享,脱机下载. 2021-01-19 18:16:11 17点赞 127收藏 15评论 是返乡过年?还是就地过年?最新一届#双面过节指南# ...

  9. 花生壳PHTunnel嵌入Openwrt实例

    下载 下载自己的编译平台的二进制PHTunnel文件是第一步要做的,我们可以到贝锐科技开放平台网站(https://developer.oray.com/sdk)进行下载,根据自己的型号进行下载,比如 ...

最新文章

  1. Delphi中使用ListView和TreeView的Item中的Data可能被忽略的内存泄漏
  2. Ubuntu的which、whereis、locate和find命令
  3. 第二次周考题目答案整理
  4. java 对象 读写锁_读写锁的java实现
  5. 文件服务器的配置与管理(3) 共享文件夹的创建与使用
  6. 如何将windows10的显示字体调大
  7. c++中RTTI的观念和使用
  8. Java 实现计时器
  9. CentOS7 安装git服务器
  10. Bailian2752 字符串数组排序问题【排序】
  11. vb程序设计基础笔记
  12. sas不能安装独立的java_sas安装问题java platform standard edition runtime environment
  13. Termux中proot-distro安装备份还原linux发行版笔记
  14. Brat中文标注工具的使用
  15. 2019一键清空朋友圈_新整理再见2019你好2020朋友圈励志说说
  16. 配置DeepStreaks环境
  17. Windows10 1607版本锁屏聚焦黑屏问题解决办法
  18. elasticsearch win10 安装
  19. Python3——numpy中mean和average的区别
  20. 行内元素、块元素、行内块

热门文章

  1. MATLAB程序:基于主从博弈理论的共享储能与综合能源微网优化运行研究
  2. MFC Windows 程序设计(1)
  3. 人工智能、神经网络、深度学习、机器学习傻傻分不清?来看看AI奠基人的解答!
  4. 实探华强北:芯片价格大涨背后,暴富只有几十家
  5. Flume-ng源码解析之Channel组件
  6. php泥浆配比,中卫护壁剂用法用量信誉高性能稳定
  7. 中鑫吉鼎|短期理财、长期理财选择哪种比较好
  8. 电子标准院工程师鲍薇:人工智能标准化引领产业发展
  9. 安徽农商行计算机类笔试考什么,2017年安徽农信社|农商行招聘考试笔试内容
  10. 后台管理系统 html