diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/s6-rc.html | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/doc/s6-rc.html b/doc/s6-rc.html new file mode 100644 index 0000000..e9a712c --- /dev/null +++ b/doc/s6-rc.html @@ -0,0 +1,163 @@ +<html> + <head> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6: the s6-rc program</title> + <meta name="Description" content="s6: the s6-rc program" /> + <meta name="Keywords" content="s6 command s6-rc rc init dependency state management services" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The s6-rc program </h1> + +<p> + s6-rc is a <em>machine state manager</em>: it brings the machine to a +desired state, by starting or stopping services as needed. +</p> + +<h2> Interface </h2> + +<pre> + s6-rc <em>servicenames...</em> +</pre> + +<ul> + <li> s6-rc expects to find a <em>compiled service database</em> +in <tt>/etc/s6-rc/compiled</tt> and a <em>live state</em> in +<tt>/s6/s6-rc</tt>. If it cannot find that data, it complains and +exits. + <ul> + <li> The <em>compiled service database</em> is built offline +via the <a href="s6-rc-compile.html">s6-rc-compile</a> tool. </li> + <li> The <em>live state</em> should be initialized at boot time +via the <a href="s6-rc-init.html">s6-rc-init</a> tool. It is then +maintained by s6-rc itself. </li> + </ul> </li> + <li> The command line arguments <em>servicenames...</em> define a set +of selected services the user wants to act on. </li> + <li> s6-rc computes the necessary transitions to bring the machine +to the desired state - by default a state where all the +services listed on the command line are up. If asked to, it performs +those transitions. </li> + <li> s6-rc processes services as soon as they can be processed. It +will wait until a service is up to start a dependent service, but it +will start two independent services in parallel. </li> + <li> If every state transition completes successfully, s6-rc exits 0. </li> + <li> If a state transition fails, s6-rc will not perform the transitions +that depend on it. It will wait until all the other independent transitions +are done, then exit 1. </li> +</ul> + +<h2> Options </h2> + +<h3> s6-rc control </h3> + +<ul> + <li> <tt>-v <em>verbosity</em></tt> : be more or less +verbose. Default is 1: warning and error messages will be printed to +stderr. 0 silences warnings. 2 writes information messages whenever +s6-rc performs a transition. 3 or more is debug info. </li> + <li> <tt>-n <em>dryruntimeout</em></tt> : dry run. +s6-rc will pretend to perform transitions, but will replace all its +program invocations by a call to +<a href="s6-rc-dryrun">s6-rc-dryrun</a>, which will do nothing but +print the command line s6-rc would have executed, then sleep for +<em>dryruntimeout</em> milliseconds before reporting success. </li> + <li> <tt>-t <em>timeout</em></tt> : timeout. If s6-rc +isn't done after <em>timeout</em> milliseconds, it will exit, leaving +the live state as it is at exit time. It does not kill its children, so +a child may successfully complete afterwards and the live state will +not be updated; in that case, subsequent s6-rc invocations will notice +and correctly update it. </li> + <li> <tt>-c <em>compiled</em></tt> : look for the +compiled service database in <em>compiled</em>. Default is +<tt>/etc/s6-rc/compiled</tt> </li> + <li> <tt>-l <em>live</em></tt> : look for the +live state in <em>live</em>. Default is +<tt>/s6/s6-rc</tt> </li> +</ul> + +<h3> Up or down </h3> + +<ul> + <li> <tt>-u</tt> : selected services are interpreted +as to be brought <em>up</em>. This is the default. </li> + <li> <tt>-d</tt> : selected services are interpreted +as to be brought <em>down</em>. </li> +</ul> + +<h3> Service selection </h3> + +<ul> + <li> <tt>-p</tt> : prune. The state will be brought to +<em>exactly</em> <em>servicenames...</em>, plus their dependencies, and +the other services will be brought down. With the <tt>-d</tt> option, +the meaning is reversed: the state will be brought to the maximum +possible set that does not include <em>servicenames...</em>. </li> + <li> <tt>-a</tt> : all. Add the current set of active services to +the selected set. This is useful to ensure consistency of the machine +state, for instance, and also at shutdown time: <tt>s6-rc -da</tt> +will stop all the currently active services. </li> +</ul> + +<h3> Actions </h3> + +<ul> + <li> <tt>-C</tt> : check. s6-rc will check the consistency of the +database, and exit with an error message if it finds errors. </li> + <li> <tt>-L</tt> : list. s6-rc will resolve the given names, then +print the list of corresponding atomic services to stdout, without taking their +dependencies into account. It will print an empty line afterwards. </li> + <li> <tt>-A</tt> : list all. s6-rc will print the list of selected +atomic services to stdout, after computing dependencies. Note that with +the <tt>-d</tt> option, it computes reverse dependencies instead. </li> + <li> <tt>-S</tt> : state change. A state change will be performed +for the selected services. +This is the default if no other action option has been given. </li> +</ul> + +<h2> Usage examples </h2> + +<pre> s6-rc <em>myservicebundle</em> </pre> +<p> + Brings up all the services represented by <em>myservicebundle</em>, +dependencies first. +</p> + +<pre> s6-rc -Sad </pre> +<p> + Brings down all the services in an orderly manner. This is typically +run at shutdown time. +</p> + +<pre> s6-rc -Au <em>myservicebundle</em> </pre> +<p> + Prints the names of all atomic services represented by +<em>myservicebundle</em>, as well as everything they depend on. +</p> + +<pre> s6-rc -Ad <em>myservicebundle</em> </pre> +<p> + Prints the names of all atomic services represented by +<em>myservicebundle</em>, as well as everything that depends on them. +</p> + +<pre> s6-rc -pun0 <em>myservicebundle</em> </pre> +<p> + Prints what s6-rc would do to bring the state to just +<em>myservicebundle</em> and its dependencies. +</p> + + +<h2> Internals </h2> + +</body> +</html> |