runit

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit c1b983b8b82db08211c8bca1b9dbeef6220c1e14
parent dfe4f9d2469f5404817543bbaf7619b500ff0cbe
Author: Gerrit Pape <pape@smarden.org>
Date:   Sat,  6 Nov 2004 15:41:54 +0000

html.

Diffstat:
Mdoc/chpst.8.html | 51++++++++++++++++++++++++++++-----------------------
Mdoc/runsv.8.html | 55++++++++++++++++++++++++++++---------------------------
Mdoc/svlogd.8.html | 194+++++++++++++++++++++++++++++++++++++++++++------------------------------------
3 files changed, 161 insertions(+), 139 deletions(-)

diff --git a/doc/chpst.8.html b/doc/chpst.8.html @@ -12,40 +12,45 @@ chpst - runs a program with a changed process state <h2><a name='sect1'>Synopsis</a></h2> <b>chpst</b> [-vP012] -[-u <i>user</i>] [-U <i>user</i>] [-e <i>dir</i>] [-/ <i>root</i>] [-l|-L <i>lock</i>] [-m <i>bytes</i>] [-o <i>n</i>] [-p <i>n</i>] [-f <i>bytes</i>] -[-c <i>bytes</i>] <i>prog</i> +[-u <i>user</i>] [-U <i>user</i>] [-e <i>dir</i>] [-/ <i>root</i>] [-n <i>inc</i>] [-l|-L <i>lock</i>] [-m <i>bytes</i>] [-o <i>n</i>] [-p +<i>n</i>] [-f <i>bytes</i>] [-c <i>bytes</i>] <i>prog</i> <h2><a name='sect2'>Description</a></h2> -<i>prog</i> consists of one or more arguments. <p> -<b>chpst</b> -changes the process state according to the given options, and runs <i>prog</i>. - +<i>prog</i> consists of one or more arguments. +<p> +<b>chpst</b> changes the process state according to the given options, and runs +<i>prog</i>. <h2><a name='sect3'>Options</a></h2> <dl> <dt><b>-u <i>user[:group]</b> </i></dt> -<dd>setuidgid. Set uid and gid to the <i>user</i>&rsquo;s uid and gid. -If <i>user</i> is followed by a colon and a <i>group</i>, set the gid to <i>group</i>&rsquo;s gid instead -of <i>user</i>&rsquo;s gid. All supplementary groups are removed. </dd> +<dd>setuidgid. Set uid and gid to the <i>user</i>&rsquo;s uid and +gid. If <i>user</i> is followed by a colon and a <i>group</i>, set the gid to <i>group</i>&rsquo;s gid +instead of <i>user</i>&rsquo;s gid. All supplementary groups are removed. </dd> -<dt><b>-U <i>user[:group]</b> </i></dt> -<dd>envuidgid. -Set the environment variables $UID and $GID to the <i>user</i>&rsquo;s uid and gid. If -<i>user</i> is followed by a colon and a <i>group</i>, set $GID to the <i>group</i>&rsquo;s gid instead -of <i>user</i>&rsquo;s gid. </dd> +<dt><b>-U <i>user[:group]</b> +</i></dt> +<dd>envuidgid. Set the environment variables $UID and $GID to the <i>user</i>&rsquo;s uid +and gid. If <i>user</i> is followed by a colon and a <i>group</i>, set $GID to the <i>group</i>&rsquo;s +gid instead of <i>user</i>&rsquo;s gid. </dd> <dt><b>-e <i>dir</b> </i></dt> -<dd>envdir. Set various environment variables as specified -by files in the directory <i>dir</i>: If <i>dir</i> contains a file named <i>k</i> whose first -line is <i>v</i>, <b>chpst</b> removes the environment variable <i>k</i> if it exists, and then -adds the environment variable <i>k</i> with the value <i>v</i>. The name <i>k</i> must not contain -=. Spaces and tabs at the end of <i>v</i> are removed, and nulls in <i>v</i> are changed -to newlines. If the file <i>k</i> is empty (0 bytes long), <b>chpst</b> removes the environment -variable <i>k</i> if it exists, without adding a new variable. </dd> +<dd>envdir. Set various environment variables +as specified by files in the directory <i>dir</i>: If <i>dir</i> contains a file named +<i>k</i> whose first line is <i>v</i>, <b>chpst</b> removes the environment variable <i>k</i> if it +exists, and then adds the environment variable <i>k</i> with the value <i>v</i>. The name +<i>k</i> must not contain =. Spaces and tabs at the end of <i>v</i> are removed, and nulls +in <i>v</i> are changed to newlines. If the file <i>k</i> is empty (0 bytes long), <b>chpst</b> +removes the environment variable <i>k</i> if it exists, without adding a new variable. +</dd> <dt><b>-/ <i>root</b> </i></dt> -<dd>chroot. Change -the root directory to <i>root</i> before starting <i>prog</i>. </dd> +<dd>chroot. Change the root directory to <i>root</i> before starting <i>prog</i>. </dd> + +<dt><b>-n +<i>inc</b> </i></dt> +<dd>nice. Add <i>inc</i> to the <i><b>nice</b>(2)</i> value before starting <i>prog</i>. <i>inc</i> must be +an integer, and may start with a minus or plus. </dd> <dt><b>-l <i>lock</b> </i></dt> <dd>lock. Open the file diff --git a/doc/runsv.8.html b/doc/runsv.8.html @@ -47,32 +47,32 @@ pipe: restart it. </dd> <dt><b>d</b> </dt> -<dd>Down. If the service is running, send it a TERM signal. If ./run -exits, start ./finish if it exists. After it stops, do not restart service. -</dd> +<dd>Down. If the service is running, send it a TERM signal, and +then a CONT signal. If ./run exits, start ./finish if it exists. After it stops, +do not restart service. </dd> <dt><b>o</b> </dt> -<dd>Once. If the service is not running, start it. Do not restart it if it -stops. </dd> +<dd>Once. If the service is not running, start it. Do +not restart it if it stops. </dd> <dt><b>p</b> </dt> -<dd>Pause. If the service is running, send it a STOP signal. </dd> +<dd>Pause. If the service is running, send it a +STOP signal. </dd> <dt><b>c</b> </dt> -<dd>Continue. -If the service is running, send it a CONT signal. </dd> +<dd>Continue. If the service is running, send it a CONT signal. +</dd> <dt><b>h</b> </dt> -<dd>Hangup. If the service -is running, send it a HUP signal. </dd> +<dd>Hangup. If the service is running, send it a HUP signal. </dd> <dt><b>a</b> </dt> -<dd>Alarm. If the service is running, send -it a ALRM signal. </dd> +<dd>Alarm. If the +service is running, send it a ALRM signal. </dd> <dt><b>i</b> </dt> -<dd>Interrupt. If the service is running, send it a INT signal. -</dd> +<dd>Interrupt. If the service is +running, send it a INT signal. </dd> <dt><b>q</b> </dt> <dd>Quit. If the service is running, send it a QUIT signal. </dd> @@ -83,25 +83,26 @@ it a ALRM signal. </dd> <dt><b>2</b> </dt> <dd>User-defined 2. If the service is running, send it a USR2 signal. </dd> -<dt><b>t</b> </dt> -<dd>Terminate. If the service is running, -send it a TERM signal. </dd> +<dt><b>t</b> +</dt> +<dd>Terminate. If the service is running, send it a TERM signal. </dd> <dt><b>k</b> </dt> -<dd>Kill. If the service is running, send it a KILL -signal. </dd> +<dd>Kill. If the +service is running, send it a KILL signal. </dd> <dt><b>x or <b>e</b> </b></dt> -<dd>Exit. If the service is running, send it a TERM signal. Do -not restart the service. If the service is down, and no log service exists, -<b>runsv</b> exits. If the service is down and a log service exists, <b>runsv</b> closes -the standard input of the log service, and waits for it to terminate. If -the log service is down, <b>runsv</b> exits. This command is ignored if it is given -to <i>service</i>/log/supervise/control. </dd> +<dd>Exit. If the service is +running, send it a TERM signal, and then a CONT signal. Do not restart the +service. If the service is down, and no log service exists, <b>runsv</b> exits. +If the service is down and a log service exists, <b>runsv</b> closes the standard +input of the log service, and waits for it to terminate. If the log service +is down, <b>runsv</b> exits. This command is ignored if it is given to <i>service</i>/log/supervise/control. +</dd> </dl> <p> -Example: to send a TERM signal to the -socklog-unix service, either do # runsvctrl term /var/service/socklog-unix<br> +Example: to send a TERM signal to the socklog-unix service, either do +# runsvctrl term /var/service/socklog-unix<br> or<br> # echo -n t &gt;/var/service/socklog-unix/supervise/control<br> <p> diff --git a/doc/svlogd.8.html b/doc/svlogd.8.html @@ -41,52 +41,65 @@ can happen on start-up or after receiving a HUP signal. <h3><a name='sect4'>Log File Rotation</a></h3> <b>svlogd</b> appends selected log messages to the <i>current</i> log file. If <i>current</i> has <i>size</i> -bytes or more (or there is a new-line within the last <i>len</i> of <i>size</i> bytes) -<i>current</i> is rotated: <p> -<b>svlogd</b> closes <i>current</i>, changes permission of <i>current</i> -to 0755, renames <i>current</i> to @<i>timestamp.s,</i> and starts with a new empty <i>current</i>. -If <b>svlogd</b> sees <i>num</i> or more old log files in <i>dir</i>, it removes the oldest -one. +bytes or more (or there is a new-line within the last <i>len</i> of <i>size</i> bytes), +or is older than a specified amount of <i>time</i>, <i>current</i> is rotated: <p> +<b>svlogd</b> +closes <i>current</i>, changes permission of <i>current</i> to 0755, renames <i>current</i> +to @<i>timestamp.s,</i> and starts with a new empty <i>current</i>. If <b>svlogd</b> sees <i>num</i> +or more old log files in <i>dir</i>, it removes the oldest one. <h3><a name='sect5'>Processor</a></h3> -If <b>svlogd</b> is told to process recent log files, it saves <i>current</i> -to @<i>timestamp.u,</i> feeds @<i>timestamp.u</i> through &lsquo;&lsquo;sh -c "<i>processor</i>"&rsquo;&rsquo; and writes the -output to @<i>timestamp.t.</i> If the <i>processor</i> finishes successfully, @<i>timestamp.u</i> -is deleted and @<i>timestamp.t</i> is renamed to @<i>timestamp.s,</i> otherwise @<i>timestamp.t</i> -is deleted and the <i>processor</i> is started again. <b>svlogd</b> also saves any output -that the <i>processor</i> writes to file descriptor 5, and makes that output available -on file descriptor 4 when running <i>processor</i> on the next log file rotation. -<p> -A <i>processor</i> is run in the background. If <b>svlogd</b> sees a previously started -<i>processor</i> still running when trying to start a new one for the same <i>log</i>, -it blocks until the currently running <i>processor</i> has finished successfully. -Only the HUP signal works in that situation. Note that this may block any -program feeding its log data to <b>svlogd.</b> +If <b>svlogd</b> +is told to process recent log files, it saves <i>current</i> to @<i>timestamp.u,</i> feeds +@<i>timestamp.u</i> through &lsquo;&lsquo;sh -c "<i>processor</i>"&rsquo;&rsquo; and writes the output to @<i>timestamp.t.</i> +If the <i>processor</i> finishes successfully, @<i>timestamp.u</i> is deleted and @<i>timestamp.t</i> +is renamed to @<i>timestamp.s,</i> otherwise @<i>timestamp.t</i> is deleted and the <i>processor</i> +is started again. <b>svlogd</b> also saves any output that the <i>processor</i> writes +to file descriptor 5, and makes that output available on file descriptor +4 when running <i>processor</i> on the next log file rotation. <p> +A <i>processor</i> is run +in the background. If <b>svlogd</b> sees a previously started <i>processor</i> still running +when trying to start a new one for the same <i>log</i>, it blocks until the currently +running <i>processor</i> has finished successfully. Only the HUP signal works in +that situation. Note that this may block any program feeding its log data +to <b>svlogd.</b> <p> <h3><a name='sect6'>Config</a></h3> -On startup, and after receiving -a HUP signal, <b>svlogd</b> checks for each <i>log</i> if the configuration file <i>log/config</i> -exists, and if so, reads the file line by line and adjusts configuration -for <i>log</i> as follows: <p> -If the line is empty, less than two characters long, -or starts with a &lsquo;&lsquo;#&rsquo;&rsquo;, it is ignored. A line of the form +On startup, and after receiving a HUP signal, <b>svlogd</b> checks +for each <i>log</i> if the configuration file <i>log/config</i> exists, and if so, reads +the file line by line and adjusts configuration for <i>log</i> as follows: <p> +If +the line is empty, less than two characters long, or starts with a &lsquo;&lsquo;#&rsquo;&rsquo;, it +is ignored. A line of the form <dl> <dt>s<i>size</i> </dt> -<dd>sets the maximum -file size of <i>current</i> when <b>svlogd</b> should rotate the current log file to -<i>size</i> bytes. Default is 1000000. If <i>size</i> is zero, <b>svlogd</b> doesn&rsquo;t rotate log -files. You should set <i>size</i> to at least (2 * <i>len</i>). </dd> +<dd>sets the maximum file size of <i>current</i> +when <b>svlogd</b> should rotate the current log file to <i>size</i> bytes. Default is +1000000. If <i>size</i> is zero, <b>svlogd</b> doesn&rsquo;t rotate log files. You should set +<i>size</i> to at least (2 * <i>len</i>). </dd> <dt>n<i>num</i> </dt> -<dd>sets the maximum number -of old log files <b>svlogd</b> should maintain to <i>num</i>. If <b>svlogd</b> sees more that -<i>num</i> old log files in <i>log</i> after log file rotation, it deletes the oldest -one. Default is 10. </dd> +<dd>sets the maximum number of old log files +<b>svlogd</b> should maintain to <i>num</i>. If <b>svlogd</b> sees more that <i>num</i> old log files +in <i>log</i> after log file rotation, it deletes the oldest one. Default is 10. +</dd> + +<dt>N<i>min</i> </dt> +<dd>sets the minimum number of old log files <b>svlogd</b> should maintain to +<i>min</i>. <i>min</i> must be less than <i>num</i>. If <i>min</i> is set, and <b>svlogd</b> cannot write to +<i>current</i> because the filesystem is full, and it sees more than <i>min</i> old log +files, it deletes the oldest one. </dd> + +<dt>t<i>timeout</i> </dt> +<dd>sets the maximum age of the <i>current</i> +log file when <b>svlogd</b> should rotate the current log file to <i>timeout</i> seconds. +If <i>current</i> is <i>timeout</i> seconds old, and is not empty, <b>svlogd</b> forces log +file rotation. </dd> <dt>!<i>processor</i> </dt> -<dd>tells <b>svlogd</b> to feed each recent log file -through <i>processor</i> (see above) on log file rotation. By default log files -are not processed. </dd> +<dd>tells <b>svlogd</b> to feed each recent log file through +<i>processor</i> (see above) on log file rotation. By default log files are not +processed. </dd> <dt>u<i>a.b.c.d[:port]</i> </dt> <dd>tells <b>svlogd</b> to transmit the first <i>len</i> characters @@ -113,89 +126,92 @@ each log message against <i>pattern</i> and acts accordingly: message is deselected. </dd> <dt>+<i>pattern</i> </dt> -<dd>the log message is selected </dd> +<dd>the log message is selected. </dd> <dt>e<i>pattern</i> </dt> -<dd>log -messages matching <i>pattern</i> are printed to standard error. </dd> +<dd>the +log message is selected to be printed to standard error. </dd> <dt>E<i>pattern</i> </dt> -<dd>log messages -not matching <i>pattern</i> are printed to standard error. </dd> +<dd>the log +message is deselected to be printed to standard error. </dd> </dl> <p> Initially each line -is selected. Deselected log messages are discarded from <i>log</i>. +is selected to be written to <i>log/current</i>. Deselected log messages are discarded +from <i>log</i>. Initially each line is deselected to be written to standard err. +Log messages selected for standard error are written to standard error. + <h2><a name='sect7'>Pattern Matching</a></h2> -<b>svlogd</b> -matches a log message against the string <i>pattern</i> as follows: <p> -<i>pattern</i> is -applied to the log message one character by one, starting with the first. -A character not a star (&lsquo;&lsquo;*&rsquo;&rsquo;) and not a plus (&lsquo;&lsquo;+&rsquo;&rsquo;) matches itself. A plus matches -the next character in <i>pattern</i> in the log message one or more times. A star -before the end of <i>pattern</i> matches any string in the log message that does -not include the next character in <i>pattern</i>. A star at the end of <i>pattern</i> -matches any string. <p> -Timestamps optionally added by <b>svlogd</b> are not considered -part of the log message. +<b>svlogd</b> matches a log message against the string <i>pattern</i> +as follows: <p> +<i>pattern</i> is applied to the log message one character by one, +starting with the first. A character not a star (&lsquo;&lsquo;*&rsquo;&rsquo;) and not a plus (&lsquo;&lsquo;+&rsquo;&rsquo;) matches +itself. A plus matches the next character in <i>pattern</i> in the log message +one or more times. A star before the end of <i>pattern</i> matches any string in +the log message that does not include the next character in <i>pattern</i>. A star +at the end of <i>pattern</i> matches any string. <p> +Timestamps optionally added by +<b>svlogd</b> are not considered part of the log message. <h2><a name='sect8'>Options</a></h2> <dl> <dt><b>-t</b> </dt> -<dd>timestamp. Prefix each selected line with -a precise timestamp (see <i><b>tai64n</b>(8)</i>) when writing to <i>log</i> or to standard -error. </dd> +<dd>timestamp. Prefix +each selected line with a precise timestamp (see <i><b>tai64n</b>(8)</i>) when writing +to <i>log</i> or to standard error. </dd> <dt><b>-tt</b> </dt> -<dd>timestamp. Prefix each selected line with a human readable, sortable -UTC timestamp of the form YYYY-MM-DD_HH:MM:SS.xxxxx when writing to <i>log</i> or -to standard error. </dd> +<dd>timestamp. Prefix each selected line with +a human readable, sortable UTC timestamp of the form YYYY-MM-DD_HH:MM:SS.xxxxx +when writing to <i>log</i> or to standard error. </dd> <dt><b>-r <i>c</b> </i></dt> -<dd>replace. <i>c</i> must be a single character. Replace non-printable -characters in log messages with <i>c</i>. Characters are replaced before pattern -matching is applied. </dd> +<dd>replace. <i>c</i> must be a single +character. Replace non-printable characters in log messages with <i>c</i>. Characters +are replaced before pattern matching is applied. </dd> <dt><b>-R <i>xyz</b> </i></dt> -<dd>replace charset. Additionally to non-printable -characters, replace all characters found in <i>xyz</i> with <i>c</i> (default &lsquo;&lsquo;_&rsquo;&rsquo;). </dd> +<dd>replace charset. Additionally +to non-printable characters, replace all characters found in <i>xyz</i> with <i>c</i> +(default &lsquo;&lsquo;_&rsquo;&rsquo;). </dd> -<dt><b>-l <i>len</b> -</i></dt> -<dd>line length. Pattern matching applies to the first <i>len</i> characters of a log -message only. Default is 1000. </dd> +<dt><b>-l <i>len</b> </i></dt> +<dd>line length. Pattern matching applies to the first <i>len</i> +characters of a log message only. Default is 1000. </dd> <dt><b>-b <i>buflen</b> </i></dt> -<dd>buffer size. Set the size of the buffer -<b>svlogd</b> uses when reading from standard input and writing to <i>logs</i> to <i>buflen</i>. -Default is 1024. <i>buflen</i> must be greater than <i>len</i>. </dd> +<dd>buffer size. Set +the size of the buffer <b>svlogd</b> uses when reading from standard input and +writing to <i>logs</i> to <i>buflen</i>. Default is 1024. <i>buflen</i> must be greater than <i>len</i>. +</dd> <dt><b>-v</b> </dt> -<dd>verbose. Print verbose -messages to standard error. </dd> +<dd>verbose. Print verbose messages to standard error. </dd> </dl> <h2><a name='sect9'>Signals</a></h2> -If <b>svlogd</b> is sent a HUP signal, it closes -and reopens all <i>logs</i>, and updates their configuration according to <i>log/config</i>. -If <b>svlogd</b> has trouble opening a log directory, it prints a warning, and -discards this log directory. If <b>svlogd</b> is unable to open all log directories -given at the command line, it exits with an error. <p> -If <b>svlogd</b> is sent a TERM -signal, or if it sees end-of-file on standard input, it stops reading standard -input, processes the data in the buffer, waits for all <i>processor</i> subprocesses -to finish if any, and exits 0 as soon as possible. <p> -If <b>svlogd</b> is sent an -ALRM signal, it forces log file rotation for all <i>logs</i> with a non empty -<i>current</i> log file. +If <b>svlogd</b> is +sent a HUP signal, it closes and reopens all <i>logs</i>, and updates their configuration +according to <i>log/config</i>. If <b>svlogd</b> has trouble opening a log directory, +it prints a warning, and discards this log directory. If <b>svlogd</b> is unable +to open all log directories given at the command line, it exits with an +error. <p> +If <b>svlogd</b> is sent a TERM signal, or if it sees end-of-file on standard +input, it stops reading standard input, processes the data in the buffer, +waits for all <i>processor</i> subprocesses to finish if any, and exits 0 as soon +as possible. <p> +If <b>svlogd</b> is sent an ALRM signal, it forces log file rotation +for all <i>logs</i> with a non empty <i>current</i> log file. <h2><a name='sect10'>See Also</a></h2> -<i>runsv(8)</i>, <i>runsvctrl(8)</i>, <i>runsvstat(8)</i>, <i>chpst(8)</i>, -<i>runit(8)</i>, <i>runit-init(8)</i>, <i>runsvdir(8)</i>, <i>runsvchdir(8)</i>, <i>utmpset(8)</i>, <i>multilog(8)</i> -<p> +<i>runsv(8)</i>, <i>runsvctrl(8)</i>, +<i>runsvstat(8)</i>, <i>chpst(8)</i>, <i>runit(8)</i>, <i>runit-init(8)</i>, <i>runsvdir(8)</i>, <i>runsvchdir(8)</i>, +<i>utmpset(8)</i>, <i>multilog(8)</i> <p> <i>http://smarden.org/runit/</i> <h2><a name='sect11'>Author</a></h2> -Gerrit Pape &lt;pape@smarden.org&gt; <p> +Gerrit Pape &lt;pape@smarden.org&gt; +<p> <hr><p> <a name='toc'><b>Table of Contents</b></a><p>