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
docs:guide-developer:procd-init-scripts [2024/02/10 16:13] – [Defining service instances] systemcrashdocs:guide-developer:procd-init-scripts [2024/02/10 16:23] (current) – [Defining service instances] systemcrash
Line 36: Line 36:
   - Settings that ''procd'' should use (e.g. auto respawning, logging stdout, user to use) - optional   - Settings that ''procd'' should use (e.g. auto respawning, logging stdout, user to use) - optional
  
-All above information is stored by ''procd'' as a service instance state. On every relevant system change (e.g. config change) ''start_service()'' is called by designed triggers. If it generates any different state (e.g. command will change) than the previous one, ''procd'' will detect it and restart the service.+The above information is stored by ''procd'' as a service instance state. On every relevant system change (e.g. config change)''start_service()'' is called by designed triggers. If it generates any different state (e.g. command will change) than the previous one, ''procd'' will detect it and restart the service.
  
 Defining service instance details is handled by setting parameters. Some values are set directly in the ''start_service()'' (like ''command'') while some are determined by ''procd'' (like ''file'' and file hash). There are two helpers for setting parameters: Defining service instance details is handled by setting parameters. Some values are set directly in the ''start_service()'' (like ''command'') while some are determined by ''procd'' (like ''file'' and file hash). There are two helpers for setting parameters:
Line 42: Line 42:
   - ''procd_append_param()''   - ''procd_append_param()''
  
-Below example lists supported parameters and describes them. For implementation details see the [[commit>?p=openwrt/openwrt.git;a=blob;f=package/system/procd/files/procd.sh|procd.sh]].+The below example lists supported parameters and describes them. For implementation details see the [[commit>?p=openwrt/openwrt.git;a=blob;f=package/system/procd/files/procd.sh|procd.sh]].
  
 <code bash> <code bash>
Line 53: Line 53:
          # if process exits sooner than respawn_threshold, it is considered crashed and after 5 retries the service is stopped          # if process exits sooner than respawn_threshold, it is considered crashed and after 5 retries the service is stopped
          # if process finishes later than respawn_threshold, it is restarted unconditionally, regardless of error code          # if process finishes later than respawn_threshold, it is restarted unconditionally, regardless of error code
-         # notice that this is literal respawning of the process, no in a respawn-on-failure sense+         # notice that this is literal respawning of the process, not in a respawn-on-failure sense
          procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}          procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
  
Line 184: Line 184:
  
 ^ Function                ^ Arguments            ^ Description                                                        ^ ^ Function                ^ Arguments            ^ Description                                                        ^
-| procd_add_jail          | jail name, flags     Setup service jail (with features according to //flags//         |+| procd_add_jail          | jail name, flags     Set up service jail (with features according to //flags//         |
 | procd_add_jail_mount    | read-only paths      | Read-only bind the paths listed to the jail's mount namespace      | | procd_add_jail_mount    | read-only paths      | Read-only bind the paths listed to the jail's mount namespace      |
 | procd_add_jail_mount_rw | read-write paths     | Bind the paths listed to the jail's mount namespace                | | procd_add_jail_mount_rw | read-write paths     | Bind the paths listed to the jail's mount namespace                |
Line 194: Line 194:
 | sysfs       | Mount /sys in jail                                               | | sysfs       | Mount /sys in jail                                               |
 | ronly       | Re-mount jail rootfs read-only                                   | | ronly       | Re-mount jail rootfs read-only                                   |
-| requirejail | Do not fallback to run without jail in case jail cannot be setup |+| requirejail | Do not fall back to run without jail in case jail could not be set up |
 | netns       | Run jailed process in new network namespace                      | | netns       | Run jailed process in new network namespace                      |
 | userns      | Run jailed process in new user namespace                         | | userns      | Run jailed process in new user namespace                         |
 | cgroupsns   | Run jailed process in new cgroups namespace                      | | cgroupsns   | Run jailed process in new cgroups namespace                      |
-| console     Setup console accessible with ''ujail-console''                  |+| console     Set up console accessible with ''ujail-console''                 |
  
 See use cases of [[https://github.com/openwrt/packages/search?q=procd_add_jail|procd_add_jail]]. See use cases of [[https://github.com/openwrt/packages/search?q=procd_add_jail|procd_add_jail]].
  • Last modified: 2024/02/10 16:13
  • by systemcrash