From bbbfed6083b68327a174ede9ab9aadcfa28593ed Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Thu, 8 Mar 2018 14:02:26 -0800 Subject: [PATCH] init: alphabetize service options in README.md Test: n/a Change-Id: If1e89a67a41279cab6acf3e38ff8eb5b77a274c1 --- init/README.md | 161 ++++++++++++++++++++++++------------------------- 1 file changed, 80 insertions(+), 81 deletions(-) diff --git a/init/README.md b/init/README.md index 5c2352b9f..fc6d0937f 100644 --- a/init/README.md +++ b/init/README.md @@ -161,6 +161,25 @@ Options Options are modifiers to services. They affect how and when init runs the service. +`capabilities [ \* ]` +> Set capabilities when exec'ing this service. 'capability' should be a Linux + capability without the "CAP\_" prefix, like "NET\_ADMIN" or "SETPCAP". See + http://man7.org/linux/man-pages/man7/capabilities.7.html for a list of Linux + capabilities. + +`class [ \* ]` +> Specify class names for the service. All services in a + named class may be started or stopped together. A service + is in the class "default" if one is not specified via the + class option. Additional classnames beyond the (required) first + one are used to group services. + The `animation` class should include all services necessary for both + boot animation and shutdown animation. As these services can be + launched very early during bootup and can run until the last stage + of shutdown, access to /data partition is not guaranteed. These + services can check files under /data but it should not keep files opened + and should work when /data is not available. + `console []` > This service needs a console. The optional second parameter chooses a specific console instead of the default. The default "/dev/console" can @@ -176,9 +195,70 @@ runs the service. > This service will not automatically start with its class. It must be explicitly started by name. +`file ` +> Open a file path and pass its fd to the launched process. _type_ must be + "r", "w" or "rw". For native executables see libcutils + android\_get\_control\_file(). + +`group [ \* ]` +> Change to 'groupname' before exec'ing this service. Additional + groupnames beyond the (required) first one are used to set the + supplemental groups of the process (via setgroups()). + Currently defaults to root. (??? probably should default to nobody) + +`memcg.limit_in_bytes ` +> Sets the child's memory.limit_in_bytes to the specified value (only if memcg is mounted), + which must be equal or greater than 0. + +`memcg.soft_limit_in_bytes ` +> Sets the child's memory.soft_limit_in_bytes to the specified value (only if memcg is mounted), + which must be equal or greater than 0. + +`memcg.swappiness ` +> Sets the child's memory.swappiness to the specified value (only if memcg is mounted), + which must be equal or greater than 0. + +`namespace ` +> Enter a new PID or mount namespace when forking the service. + +`oneshot` +> Do not restart the service when it exits. + +`onrestart` +> Execute a Command (see below) when service restarts. + +`oom_score_adjust ` +> Sets the child's /proc/self/oom\_score\_adj to the specified value, + which must range from -1000 to 1000. + +`priority ` +> Scheduling priority of the service process. This value has to be in range + -20 to 19. Default priority is 0. Priority is set via setpriority(). + +`rlimit ` +> This applies the given rlimit to the service. rlimits are inherited by child + processes, so this effectively applies the given rlimit to the process tree + started by this service. + It is parsed similarly to the setrlimit command specified below. + +`seclabel ` +> Change to 'seclabel' before exec'ing this service. + Primarily for use by services run from the rootfs, e.g. ueventd, adbd. + Services on the system partition can instead use policy-defined transitions + based on their file security context. + If not specified and no transition is defined in policy, defaults to the init context. + `setenv ` > Set the environment variable _name_ to _value_ in the launched process. +`shutdown ` +> Set shutdown behavior of the service process. When this is not specified, + the service is killed during shutdown process by using SIGTERM and SIGKILL. + The service with shutdown_behavior of "critical" is not killed during shutdown + until shutdown times out. When shutdown times out, even services tagged with + "shutdown critical" will be killed. When the service tagged with "shutdown critical" + is not running when shut down starts, it will be started. + `socket [ [ [ ] ] ]` > Create a unix domain socket named /dev/socket/_name_ and pass its fd to the launched process. _type_ must be "dgram", "stream" or "seqpacket". User and @@ -187,11 +267,6 @@ runs the service. seclabel or computed based on the service executable file security context. For native executables see libcutils android\_get\_control\_socket(). -`file ` -> Open a file path and pass its fd to the launched process. _type_ must be - "r", "w" or "rw". For native executables see libcutils - android\_get\_control\_file(). - `user ` > Change to 'username' before exec'ing this service. Currently defaults to root. (??? probably should default to nobody) @@ -208,88 +283,12 @@ runs the service. As of Android O, processes can also request capabilities directly in their .rc files. See the "capabilities" option below. -`group [ \* ]` -> Change to 'groupname' before exec'ing this service. Additional - groupnames beyond the (required) first one are used to set the - supplemental groups of the process (via setgroups()). - Currently defaults to root. (??? probably should default to nobody) - -`capabilities [ \* ]` -> Set capabilities when exec'ing this service. 'capability' should be a Linux - capability without the "CAP\_" prefix, like "NET\_ADMIN" or "SETPCAP". See - http://man7.org/linux/man-pages/man7/capabilities.7.html for a list of Linux - capabilities. - -`setrlimit ` -> This applies the given rlimit to the service. rlimits are inherited by child - processes, so this effectively applies the given rlimit to the process tree - started by this service. - It is parsed similarly to the setrlimit command specified below. - -`seclabel ` -> Change to 'seclabel' before exec'ing this service. - Primarily for use by services run from the rootfs, e.g. ueventd, adbd. - Services on the system partition can instead use policy-defined transitions - based on their file security context. - If not specified and no transition is defined in policy, defaults to the init context. - -`oneshot` -> Do not restart the service when it exits. - -`class [ \* ]` -> Specify class names for the service. All services in a - named class may be started or stopped together. A service - is in the class "default" if one is not specified via the - class option. Additional classnames beyond the (required) first - one are used to group services. -`animation class` -> 'animation' class should include all services necessary for both - boot animation and shutdown animation. As these services can be - launched very early during bootup and can run until the last stage - of shutdown, access to /data partition is not guaranteed. These - services can check files under /data but it should not keep files opened - and should work when /data is not available. - -`onrestart` -> Execute a Command (see below) when service restarts. - `writepid [ \* ]` > Write the child's pid to the given files when it forks. Meant for cgroup/cpuset usage. If no files under /dev/cpuset/ are specified, but the system property 'ro.cpuset.default' is set to a non-empty cpuset name (e.g. '/foreground'), then the pid is written to file /dev/cpuset/_cpuset\_name_/tasks. -`priority ` -> Scheduling priority of the service process. This value has to be in range - -20 to 19. Default priority is 0. Priority is set via setpriority(). - -`namespace ` -> Enter a new PID or mount namespace when forking the service. - -`oom_score_adjust ` -> Sets the child's /proc/self/oom\_score\_adj to the specified value, - which must range from -1000 to 1000. - -`memcg.swappiness ` -> Sets the child's memory.swappiness to the specified value (only if memcg is mounted), - which must be equal or greater than 0. - -`memcg.soft_limit_in_bytes ` -> Sets the child's memory.soft_limit_in_bytes to the specified value (only if memcg is mounted), - which must be equal or greater than 0. - -`memcg.limit_in_bytes ` -> Sets the child's memory.limit_in_bytes to the specified value (only if memcg is mounted), - which must be equal or greater than 0. - -`shutdown ` -> Set shutdown behavior of the service process. When this is not specified, - the service is killed during shutdown process by using SIGTERM and SIGKILL. - The service with shutdown_behavior of "critical" is not killed during shutdown - until shutdown times out. When shutdown times out, even services tagged with - "shutdown critical" will be killed. When the service tagged with "shutdown critical" - is not running when shut down starts, it will be started. - Triggers --------