diff options
-rw-r--r-- | COPYING | 2 | ||||
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | doc/index.html | 2 | ||||
-rw-r--r-- | doc/instances.html | 26 | ||||
-rw-r--r-- | doc/s6-instance-control.html | 1 | ||||
-rw-r--r-- | doc/s6-instance-list.html | 60 | ||||
-rw-r--r-- | doc/s6-instance-status.html | 64 | ||||
-rw-r--r-- | doc/upgrade.html | 1 |
8 files changed, 146 insertions, 13 deletions
@@ -1,4 +1,4 @@ -Copyright (c) 2011-2022 Laurent Bercot <ska-skaware@skarnet.org> +Copyright (c) 2011-2023 Laurent Bercot <ska-skaware@skarnet.org> Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above @@ -9,6 +9,9 @@ In 2.11.2.0 as the third argument to ./finish. - The 1-second service restart delay can now only be skipped when the service is ready. + - Implementation of instances! New programs: s6-instance-maker, +s6-instance-create, s6-instance-delete, s6-instance-control, +s6-instance-status, s6-instance-list. In 2.11.1.2 diff --git a/doc/index.html b/doc/index.html index 8b87d71..e41fa67 100644 --- a/doc/index.html +++ b/doc/index.html @@ -279,6 +279,8 @@ synchronization</a>. <li><a href="s6-instance-create.html">The <tt>s6-instance-create</tt> program</a></li> <li><a href="s6-instance-delete.html">The <tt>s6-instance-delete</tt> program</a></li> <li><a href="s6-instance-control.html">The <tt>s6-instance-control</tt> program</a></li> +<li><a href="s6-instance-status.html">The <tt>s6-instance-status</tt> program</a></li> +<li><a href="s6-instance-list.html">The <tt>s6-instance-list</tt> program</a></li> </ul> <h4> Timed lock acquisition </h4> diff --git a/doc/instances.html b/doc/instances.html index 78b3cd5..8f49923 100644 --- a/doc/instances.html +++ b/doc/instances.html @@ -65,18 +65,16 @@ supervision tree - the instanced service is an instances. </li> <li> Create and delete instances at will with the <a href="s6-instance-create.html">s6-instance-create</a> and -<a href="s6-instance-delete.html">s6-instance-delete</a> programs. Instances -are regular supervised processes; you can control them with -<a href="s6-instance-control.html">s6-instance-control</a>. These tools are -<em>online</em>: they work with live service directories (i.e. that are -being supervised by <a href="s6-supervise.html">s6-supervise</a>). They -are really syntactic sugar around the -<a href="s6-svlink.html">s6-svlink</a>, -<a href="s6-svunlink.html">s6-svunlink</a> and -<a href="s6-svc.html">s6-svc</a> programs; they provide you with the -same functionality but allow you to address individual instances via the -instanced service name (the service directory running the nested -supervision tree) and the instance name. </li> +<a href="s6-instance-delete.html">s6-instance-delete</a> programs; you +can list all the available instances with +<a href="s6-instance-list.html">s6-instance-list</a>. + These tools are <em>online</em>: they work with live service directories, +i.e. that are being supervised by <a href="s6-supervise.html">s6-supervise</a>. + <li> Instances are regular supervised processes. You can control individual +instances with <a href="s6-instance-control.html">s6-instance-control</a>, +and check their status with +<a href="s6-instance-status.html">s6-instance-status</a>. These tools +are online as well. </li> </ul> <h2> Internal workings </h2> @@ -101,6 +99,10 @@ process running on <tt>instance/<em>name</em></tt>, and the instance may be up or not depending on the given options. </li> <li> <a href="s6-instance-control.html">s6-instance-control</a> is syntactic sugar around <a href="s6-svc.html">s6-svc</a> on <tt>instance/<em>name</em></tt>. </li> + <li> <a href="s6-instance-status.html">s6-instance-status</a> is syntactic sugar +around <a href="s6-svstat.html">s6-svstat</a> on <tt>instance/<em>name</em></tt>. </li> + <li> <a href="s6-instance-list.html">s6-instance-list</a> is roughly equivalent +to <code>ls -1 instance </code>. </li> <li> <a href="s6-instance-delete.html">s6-instance-delete</a> is syntactic sugar around <a href="s6-svunlink.html">s6-svunlink</a> on <tt>instance/<em>name</em></tt>. </li> </ul> diff --git a/doc/s6-instance-control.html b/doc/s6-instance-control.html index b52819a..b58fb18 100644 --- a/doc/s6-instance-control.html +++ b/doc/s6-instance-control.html @@ -54,6 +54,7 @@ the <em>name</em> instance. </li> understood by <a href="s6-svc.html">s6-svc</a>. </p> +<p> In fact, s6-instance-control is nothing more than a call to <a href="s6-svc.html">s6-svc</a> on the service directory representing the <em>name</em> instance. It is syntactic sugar so diff --git a/doc/s6-instance-list.html b/doc/s6-instance-list.html new file mode 100644 index 0000000..69cb342 --- /dev/null +++ b/doc/s6-instance-list.html @@ -0,0 +1,60 @@ +<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-instance-list program</title> + <meta name="Description" content="s6: the s6-instance-list program" /> + <meta name="Keywords" content="s6 command s6-instance-list instance dynamic instantiation instanced services list listing" /> + <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6</a><br /> +<a href="//skarnet.org/software/">Software</a><br /> +<a href="//skarnet.org/">skarnet.org</a> +</p> + +<h1> The s6-instance-list program </h1> + +<p> +s6-instance-list gives a list of all currently created instances of an +<a href="instances.html">instanced service</a>. +</p> + +<h2> Interface </h2> + +<pre> + s6-instance-list <em>servicedir</em> +</pre> + +<ul> + <li> s6-instance-list expects a running, supervised +<a href="instances.html">instanced service</a> in <em>servicedir</em>, +as well as an existing instance of this service named <em>name</em>. </li> + <li> It prints to stdout, one per line, the names of all existing instances of <em>servicedir</em>, i.e. +the ones that have been created and not deleted. It does not matter if the instances are +up or down; if they've been created and not deleted, they're printed. </li> + <li> It exits 0. </li> +</ul> + +<h2> Exit codes </h2> + +<ul> + <li> 0: success </li> + <li> 100: wrong usage </li> + <li> 111: system call failed </li> +</ul> + +<h2> Notes </h2> + +<ul> + <li> The list is unsorted, the instance names are printed in an unspecified order. </li> + <li> You can use s6-instance-list to script commands that handle sets of instances. +For instance, to get the status of all the instances of a given service, you could write: +<code> for i in `s6-instance-list <em>service</em>` ; do printf "%s: " $i ; s6-instance-status <em>service</em> $i ; done </code> </li> +</ul> + +</body> +</html> diff --git a/doc/s6-instance-status.html b/doc/s6-instance-status.html new file mode 100644 index 0000000..4bc6b75 --- /dev/null +++ b/doc/s6-instance-status.html @@ -0,0 +1,64 @@ +<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-instance-status program</title> + <meta name="Description" content="s6: the s6-instance-status program" /> + <meta name="Keywords" content="s6 command s6-instance-status instance dynamic instantiation instanced services status s6-svstat" /> + <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6</a><br /> +<a href="//skarnet.org/software/">Software</a><br /> +<a href="//skarnet.org/">skarnet.org</a> +</p> + +<h1> The s6-instance-status program </h1> + +<p> +s6-instance-status gives the status of a running instance of an +<a href="instances.html">instanced service</a>, as a short human-readable +summary or programmatically parsable output. +</p> + +<h2> Interface </h2> + +<pre> + s6-instance-status [ -uwNrpest | -o up,wantedup,normallyup,ready,paused,pid,exitcode,signal,signum,updownsince,readysince,updownfor,readyfor ] [ -n ] <em>servicedir</em> <em>name</em> +</pre> + +<ul> + <li> s6-instance-status expects a running, supervised +<a href="instances.html">instanced service</a> in <em>servicedir</em>, +as well as an existing instance of this service named <em>name</em>. </li> + <li> It prints information to stdout about the monitored instance of <em>servicedir</em> named <em>name</em>. </li> + <li> It exits 0. </li> +</ul> + +<h2> Exit codes </h2> + +<ul> + <li> 0: success </li> + <li> 100: wrong usage </li> + <li> 111: system call failed </li> +</ul> + +<h2> Options </h2> + +<p> + The options are exactly the same as the ones understood by <a href="s6-svstat.html">s6-svstat</a>. +</p> + +<p> + In fact, s6-instance-status is +nothing more than a call to <a href="s6-svstat.html">s6-svstat</a> on the service +directory representing the <em>name</em> instance. It is syntactic sugar so +the user does not have to depend on the internal representation of instances +and the location of instances' service directories. +</p> + +</body> +</html> diff --git a/doc/upgrade.html b/doc/upgrade.html index 077b9d8..7afba07 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -27,6 +27,7 @@ dependency bumped to 2.13.0.0. </li> optional dependency bumped to 0.2.0.2. </li> <li> <a href="//skarnet.org/software/execline/">execline</a> recommended dependency bumped to 2.9.1.0. </li> + <li> New feature: implementation of <a href="instances.html">instances</a>. </li> </ul> <h2> in 2.11.1.2 </h2> |