summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--doc/install.html12
-rw-r--r--doc/replaceinit.html4
-rw-r--r--doc/upgrade.html2
-rw-r--r--man/sv.823
-rw-r--r--package/CHANGES7
-rwxr-xr-xpackage/upgrade4
-rw-r--r--package/versions1
-rw-r--r--src/chpst.c11
-rw-r--r--src/sv.c7
10 files changed, 50 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index a11075e..5083bc3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 DESTDIR=
 
-PACKAGE=runit-1.3.2
+PACKAGE=runit-1.3.3
 DIRS=doc man etc package src
 MANPAGES=runit.8 runit-init.8 runsvdir.8 runsv.8 sv.8 svwaitdown.8 svwaitup.8 \
 utmpset.8 runsvchdir.8 runsvstat.8 runsvctrl.8 svlogd.8 chpst.8
diff --git a/doc/install.html b/doc/install.html
index 728472d..8140e6c 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -17,14 +17,14 @@ If you don't have a <tt>/package</tt> directory, create it now:
  # chmod 1755 /package
 </pre>
 Download
-<a href="runit-1.3.2.tar.gz">runit-1.3.2.tar.gz</a> into <tt>/package</tt>
+<a href="runit-1.3.3.tar.gz">runit-1.3.3.tar.gz</a> into <tt>/package</tt>
 and unpack the archive
 <pre>
  # cd /package
- # gunzip runit-1.3.2.tar
- # tar -xpf runit-1.3.2.tar
- # rm runit-1.3.2.tar
- # cd admin/runit-1.3.2
+ # gunzip runit-1.3.3.tar
+ # tar -xpf runit-1.3.3.tar
+ # rm runit-1.3.3.tar
+ # cd admin/runit-1.3.3
 </pre>
 On MacOSX, do
 <pre>
@@ -43,7 +43,7 @@ hierarchy, do:
 </pre>
 To report success:
 <pre>
- # mail pape-runit-1.3.2@smarden.org &lt;compile/sysdeps
+ # mail pape-runit-1.3.3@smarden.org &lt;compile/sysdeps
 </pre>
 If you use <i>runit</i> regularly, please
 <a href="http://smarden.org/pape/#contribution">contribute</a> to the project.
diff --git a/doc/replaceinit.html b/doc/replaceinit.html
index da07a96..408897e 100644
--- a/doc/replaceinit.html
+++ b/doc/replaceinit.html
@@ -116,7 +116,7 @@ default Unix process no 1 <i>runit</i>.
 </pre>
 To report success:
 <pre>
- # ( uname -a ; cat /etc/runit/[123] ) |mail pape-runit-1.3.2@smarden.org
+ # ( uname -a ; cat /etc/runit/[123] ) |mail pape-runit-1.3.3@smarden.org
 </pre>
 <hr>
 
@@ -205,7 +205,7 @@ This will cause <i>runit</i> to enter stage 3 which runs
 <p>
 To report success:
 <pre>
- # ( uname -a ; cat /etc/runit/[123] ) |mail pape-runit-1.3.2@smarden.org
+ # ( uname -a ; cat /etc/runit/[123] ) |mail pape-runit-1.3.3@smarden.org
 </pre>
 <h3>Step 5: Service migration</h3>
 The goal is to migrate all services from <i>/etc/rc.*</i> scheme to the
diff --git a/doc/upgrade.html b/doc/upgrade.html
index 8f1034c..8a79b51 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -9,7 +9,7 @@
 <hr>
 <h1>runit - upgrading from previous versions</h1>
 <hr>
-<h3>1.2.x to 1.3.0 or 1.3.1 or 1.3.2</h3>
+<h3>1.2.x to 1.3.x</h3>
 This release introduces a first test version of the <a href="sv.8.html">sv</a>
 program, which can be used to control the state and query the status of
 services monitored by <a href="runsv.8.html">runsv</a>.
diff --git a/man/sv.8 b/man/sv.8
index 419dfb6..59be1dc 100644
--- a/man/sv.8
+++ b/man/sv.8
@@ -49,7 +49,8 @@ to be controlled then is specified by the base name of the ``init script''.
 .SH COMMANDS
 .TP
 .B status
-Report the current status of the service to standard output.
+Report the current status of the service, and the appendant log service if
+available, to standard output.
 .TP
 .B up
 If the service is not running, start it.
@@ -181,13 +182,29 @@ process to terminate.
 Then report the status, and on timeout send the service the
 .I kill
 command.
+.SH Additional Commands
+.TP
+.B check
+Check for the service to be in the state that's been requested.
+Wait up to 7 seconds for the service to reach the requested state, then
+report the status or timeout.
+If the requested state of the service is
+.IR up ,
+and the script
+.I ./check
+exists in the service directory,
+.B sv
+runs this script to check whether the service is up and running; it's
+considered to be up if
+.I ./check
+exits with 0.
 .SH OPTIONS
 .TP
 .B \-v
 If the
 .I command
-is up, down, term, once, or exit, then wait up to 7 seconds for the command
-to take effect.
+is up, down, term, once, cont, or exit, then wait up to 7 seconds for the
+command to take effect.
 Then report the status or timeout.
 .TP
 .B \-w \fIsec
diff --git a/package/CHANGES b/package/CHANGES
index 4503f27..ff504ab 100644
--- a/package/CHANGES
+++ b/package/CHANGES
@@ -1,3 +1,10 @@
+runit 1.3.3
+Mon, 02 Jan 2006 20:35:34 +0000
+  * chpst.c: adjust nice value and set limits before dropping permissions.
+  * sv.c: new additional command 'check'; with -v check for CONT through
+    ./check if service is up.
+  * man/sv.8: adapt.
+
 runit 1.3.2
 Sun, 18 Dec 2005 11:22:04 +0000
   * svlogd.c: don't print extra newlines to the log if additionally writing
diff --git a/package/upgrade b/package/upgrade
index 9977631..7092a2e 100755
--- a/package/upgrade
+++ b/package/upgrade
@@ -8,9 +8,9 @@ test -d src || sh -cx '! : Wrong working directory.'
 here=`env - PATH=$PATH pwd`
 parent=`dirname $here`
 
-echo 'Creating symlink runit -> runit-1.3.2...'
+echo 'Creating symlink runit -> runit-1.3.3...'
 rm -f runit
-ln -s runit-1.3.2 runit
+ln -s runit-1.3.3 runit
 mv -f runit ..
 
 echo 'Making command links in /command...'
diff --git a/package/versions b/package/versions
index 6003e20..91fb519 100644
--- a/package/versions
+++ b/package/versions
@@ -37,3 +37,4 @@
 1.3.0
 1.3.1
 1.3.2
+1.3.3
diff --git a/src/chpst.c b/src/chpst.c
index 3381a3b..af324f6 100644
--- a/src/chpst.c
+++ b/src/chpst.c
@@ -322,18 +322,17 @@ int main(int argc, const char *const *argv) {
     if (chdir(root) == -1) fatal2("unable to change directory", root);
     if (chroot(".") == -1) fatal("unable to change root directory");
   }
+  slimit();
+  if (nicelvl) {
+    errno =0;
+    if (nice(nicelvl) == -1) if (errno) fatal("unable to set nice level");
+  }
   if (env_user) euidgid(env_user, 1);
   if (set_user) suidgid(set_user, 1);
-  slimit();
   if (lock) slock(lock, lockdelay, 0);
   if (nostdin) if (close(0) == -1) fatal("unable to close stdin");
   if (nostdout) if (close(1) == -1) fatal("unable to close stdout");
   if (nostderr) if (close(2) == -1) fatal("unable to close stderr");
-  if (nicelvl) {
-    errno =0;
-    if (nice(nicelvl) == -1)
-      if (errno) fatal("unable to set nice level");
-  }
   pathexec(argv);
   fatal2("unable to run", *argv);
   return(0);
diff --git a/src/sv.c b/src/sv.c
index dbd6cfe..cae9a78 100644
--- a/src/sv.c
+++ b/src/sv.c
@@ -217,6 +217,7 @@ int check(char *a) {
   case 'x': return(0);
   case 'u': if (!pid) return(0); if (!checkscript()) return(0); break;
   case 'd': if (pid) return(0); break;
+  case 'c': if (pid) if (!checkscript()) return(0); break;
   case 't':
     if (!pid && svstatus[17] == 'd') break;
     tai_unpack(svstatus, &tstatus);
@@ -292,7 +293,9 @@ int main(int argc, char **argv) {
     acts ="d"; kll =1; cbk =&check; break;
   case 'T':
     acts ="tc"; kll =1; cbk =&check; break;
-  case 'u': case 'd': case 'o': case 't': case 'p': case 'c': case 'h':
+  case 'c':
+    if (!str_diff(action, "check")) { act =0; acts ="c"; cbk =&check; break; }
+  case 'u': case 'd': case 'o': case 't': case 'p': case 'h':
   case 'a': case 'i': case 'k': case 'q': case '1': case '2':
     action[1] =0; acts =action; break;
   case 's':
@@ -330,7 +333,7 @@ int main(int argc, char **argv) {
         fail("unable to change to service directory");
         *service =0;
       }
-    if (*service) if (act(acts) == -1) *service =0;
+    if (*service) if (act && (act(acts) == -1)) *service =0;
     if (fchdir(curdir) == -1) fatal("unable to change to original directory");
     service++;
   }