User Tools

Site Tools


doc:techref:procd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:techref:procd [2013/07/11 20:15]
lorema
doc:techref:procd [2016/02/19 12:19] (current)
karlp update procd git link
Line 1: Line 1:
 +==== What is procd? ====
 +''​procd''​ is the new OpenWrt [[wp>​Process (computing)|process]] management daemon written in [[wp>C (programming language)|C]]. It keeps track of processes started from init scripts (via ubus calls), and can suppress redundant service start/​restart requests when the config/​environment has not changed.
  
 +''​procd''​ has replaced ... , e.g.
 +  * ''​hotplug2'',​ a dynamic device management subsystem for embedded systems. Hotplug2 is a trivial replacement of some of the UDev functionality in a tiny pack, intended for Linux early userspace: Init RAM FS and InitRD.
 +  * ''​busybox-klogd''​ and ''​busybox-syslogd''​
 +  * ''​busybox-watchdog''​
 +
 +
 +''​procd''​ is intended to stay compatible with the existing format of ''​[[doc:​uci|/​etc/​config/​]]'';​ exceptions ...
 +
 +
 +==== Help with the development of procd ====
 +  - test what has been ported
 +  - review of the code
 +
 +==== Buttons with procd ====
 +
 +:!: see commit in https://​dev.openwrt.org/​log/​trunk/​package/​base-files/​files/​etc/​rc.button
 +
 +:!: see use case [[:​doc:​howto:​hardware.button]]
 +
 +==== Init scripts with procd ====
 +
 +see [[inbox:​procd-init-scripts]]
 +
 +==== Why do we want procd? ====
 +One thing that ''​procd''​ does much better then ...
 +
 +It boils down to the fact that the current ... are rather constrained and inflexible:
 +  * ...
 +  * ...
 +  * ...
 +
 +''​procd''​ will be able to ... 
 + - and of course all that without adding unnecessary bloat. AFAIK there are no alternatives to procd.
 +
 +{{page>​meta:​infobox:​construction&​noheader&​nofooter&​noeditbtn}}
 +====== procd (process management daemon) – Technical Reference ======
 +  * [[http://​git.openwrt.org/?​p=project/​procd.git;​a=summary|Project'​s git]]
 +  * procd is available in OpenWrt since [[https://​dev.openwrt.org/​changeset/​34865|r34865 (trunk)]]. It consists of files under GPLv2, LGPLv2.1 and ISC licenses.
 +  * [[https://​dev.openwrt.org/​search?​q=procd&​noquickjump=1&​changeset=on|commits to OpenWrt trunk regarding procd]]
 +
 +===== OpenWrt – operating system architecture =====
 +{{page>​doc:​techref:​architecture&​noheader&​nofooter}}
 +
 +==== History ====
 +
 +Package history is available at:
 +  * current history: [[https://​dev.openwrt.org/​log/​trunk/​package/​system/​procd]]
 +  * old history pre r37007 [[https://​dev.openwrt.org/​log/​trunk/​package/​procd/​Makefile?​rev=36995]]
 +
 +  * [[https://​dev.openwrt.org/​changeset/​34865|r34865:​ procd: add initial implementation]]
 +  * [[https://​dev.openwrt.org/​changeset/​34866|r34866:​ base-files: add basic procd integration,​ let procd start (and restart) ubus instead of having an ubus init script]]
 +  * [[https://​dev.openwrt.org/​changeset/​34867|r34867:​ dropbear: convert init script to procd]]
 +  * [[https://​dev.openwrt.org/​changeset/​36003|r36003:​ base-files: make basefiles aware of procd]]
 +  * [[https://​dev.openwrt.org/​changeset/​36005|r36005:​ busybox: make init and logread depend on !PROCD_INIT]]
 +  * [[https://​dev.openwrt.org/​changeset/​36446|r36446:​ hotplug2: make it depend on !PROCD_INIT]]
 +  * [[https://​dev.openwrt.org/​changeset/​36896|r36896:​ procd: make the preinit rules wildcard all buttons for failsafe]]
 +  * [[https://​dev.openwrt.org/​changeset/​36987|r36987:​ hotplug2: procd does the hotplugging now]]
 +  * [[https://​dev.openwrt.org/​changeset/​36998|r36998:​ base-files: procd is now the init process]]
 +  * [[https://​dev.openwrt.org/​changeset/​36999|r36999:​ base-files: diag does not need to insmod any drivers, procd already did it for us]]
 +  * [[https://​dev.openwrt.org/​changeset/​37000|r37000:​ base-files: input/​button drivers get loaded before preinit by procd]]
 +  * [[https://​dev.openwrt.org/​changeset/​37002|r37002:​ base-files: /​etc/​init.d/​rcS is no longer needed, procd handles this for us now]]
 +  * [[https://​dev.openwrt.org/​changeset/​37039|r37039:​ busybox: disable syslogd/​klogd by default, procd replaces them]]
 +  * [[https://​dev.openwrt.org/​changeset/​37106|r37106:​ busybox: disable the watchdog utility by default (procd handles watchdog devices)]]
 +  * [[https://​dev.openwrt.org/​changeset/​37242|r37242,​ 37243, 37244: busybox: convert telnet, crond and sysntpd init scripts to procd]]
 +  * [[https://​dev.openwrt.org/​changeset/​37245|r37245:​ dropbear: register a config.change trigger: procd_add_config_trigger "​dropbear"​ "/​etc/​init.d/​dropbear"​ "​restart"​]]
 +  * [[https://​dev.openwrt.org/​changeset/​37249|r37429:​ procd: add proto and trigger support to the /​etc/​init.d/​log]]
 +  * [[https://​dev.openwrt.org/​changeset/​37336|r37336:​ procd: make old button hotplug rules work until all packages are migrated]]