summary refs log tree commit diff
diff options
context:
space:
mode:
authorGerrit Pape <pape@smarden.org>2002-10-07 09:29:38 +0000
committerGerrit Pape <pape@smarden.org>2002-10-07 09:29:38 +0000
commit9dcd5fddf3fd745c6265bbb2c89673009e0db7a4 (patch)
tree7ab798cc53234690b65a80ea254881d6c2f54027
parent58416189c11a9dcfc4514980cb1b3c78e0dabe5c (diff)
downloadrunit-9dcd5fddf3fd745c6265bbb2c89673009e0db7a4.tar.gz
runit-9dcd5fddf3fd745c6265bbb2c89673009e0db7a4.tar.xz
runit-9dcd5fddf3fd745c6265bbb2c89673009e0db7a4.zip
0.7.0.
-rw-r--r--Makefile2
-rw-r--r--debian/changelog4
-rw-r--r--debian/postinst2
-rwxr-xr-xdebian/rules38
-rw-r--r--doc/install.html10
-rw-r--r--doc/replaceinit.html4
-rw-r--r--doc/runlevels.html15
-rw-r--r--doc/upgrade.html33
-rw-r--r--package/CHANGES4
-rwxr-xr-xpackage/upgrade4
-rw-r--r--src/runsvchdir.c29
11 files changed, 102 insertions, 43 deletions
diff --git a/Makefile b/Makefile
index cb4d4d0..087eaaf 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 DESTDIR=
 
-PACKAGE=runit-0.6.4
+PACKAGE=runit-0.7.0
 DIRS=doc man etc package src
 MANPAGES=runit.8 runit-init.8 runsvdir.8 runsv.8 svwaitdown.8 svwaitup.8 \
 utmpset.8 runsvchdir.8
diff --git a/debian/changelog b/debian/changelog
index f6a7bfe..39204ff 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-runit (0.6.4-1) sarge; urgency=low
+runit (0.7.0-1) sarge; urgency=low
 
   * See /package/admin/runit/package/CHANGES.
   * preinst: new; create hardlink /sbin/runit.old -> /sbin/runit on
     upgrade.
 
- -- Gerrit Pape <pape@smarden.org>  Sun,  6 Oct 2002 12:24:15 +0200
+ -- Gerrit Pape <pape@smarden.org>  Mon,  7 Oct 2002 11:25:47 +0200
 
 runit (0.6.0-1) sarge; urgency=low
 
diff --git a/debian/postinst b/debian/postinst
index 6ddc26a..a8bed59 100644
--- a/debian/postinst
+++ b/debian/postinst
@@ -25,7 +25,7 @@ set -e
 case "$1" in
     configure)
 	( \
-	cd /package/admin/runit-0.6.4
+	cd /package/admin/runit-0.7.0
 	package/upgrade
 	)
     ;;
diff --git a/debian/rules b/debian/rules
index 8c240c3..e171d78 100755
--- a/debian/rules
+++ b/debian/rules
@@ -23,15 +23,15 @@ build-stamp:
 	#	$(MAKE)
 	#/usr/bin/docbook-to-man debian/runit.sgml > runit.1
 
-	tar xfzvp runit-0.6.4.tar.gz
+	tar xfzvp runit-0.7.0.tar.gz
 	( \
-	cd admin/runit-0.6.4 ; \
+	cd admin/runit-0.7.0 ; \
 	echo 'diet gcc -O2 -Wall' > src/conf-cc ; \
 	echo 'diet gcc -s -Os -pipe' > src/conf-ld ; \
 	package/compile ; \
-	echo "/package/admin/runit-0.6.4" > compile/home ; \
+	echo "/package/admin/runit-0.7.0" > compile/home ; \
 	rm -f compile/src ; \
-	ln -s /package/admin/runit-0.6.4/src compile/src ; \
+	ln -s /package/admin/runit-0.7.0/src compile/src ; \
 	)
 	touch build-stamp
 
@@ -58,40 +58,40 @@ install: build
 
 	chmod 1755 debian/runit/package
 	cp -a admin debian/runit/package/
-	rm -rf debian/runit/package/admin/runit-0.6.4/compile
-	cp -a debian/runit/package/admin/runit-0.6.4/man .
-	rm -rf debian/runit/package/admin/runit-0.6.4/man
-	cp -a debian/runit/package/admin/runit-0.6.4/doc .
-	rm -rf debian/runit/package/admin/runit-0.6.4/doc
-	cp -a debian/runit/package/admin/runit-0.6.4/etc .
-	rm -rf debian/runit/package/admin/runit-0.6.4/etc
-	cp -a debian/runit/package/admin/runit-0.6.4/package .
+	rm -rf debian/runit/package/admin/runit-0.7.0/compile
+	cp -a debian/runit/package/admin/runit-0.7.0/man .
+	rm -rf debian/runit/package/admin/runit-0.7.0/man
+	cp -a debian/runit/package/admin/runit-0.7.0/doc .
+	rm -rf debian/runit/package/admin/runit-0.7.0/doc
+	cp -a debian/runit/package/admin/runit-0.7.0/etc .
+	rm -rf debian/runit/package/admin/runit-0.7.0/etc
+	cp -a debian/runit/package/admin/runit-0.7.0/package .
 
 	# /etc/runit
-	cp -p admin/runit-0.6.4/etc/debian/[123] \
+	cp -p admin/runit-0.7.0/etc/debian/[123] \
 		debian/runit/etc/runit/
-	cp -p admin/runit-0.6.4/etc/debian/ctrlaltdel \
+	cp -p admin/runit-0.7.0/etc/debian/ctrlaltdel \
 		debian/runit/etc/runit/
-	cp -p admin/runit-0.6.4/etc/debian/getty-tty5/run \
+	cp -p admin/runit-0.7.0/etc/debian/getty-tty5/run \
 		debian/runit/etc/runit/getty-5/run
 
 	# runit programs
-	cp -p debian/runit/package/admin/runit-0.6.4/command/runit* \
+	cp -p debian/runit/package/admin/runit-0.7.0/command/runit* \
 		debian/runit/sbin/
 
 	# cleanup
-	rm -rf debian/runit/package/admin/runit-0.6.4/compile
+	rm -rf debian/runit/package/admin/runit-0.7.0/compile
 
 	# create debian/links
 	rm -f debian/links
 	for i in \
-	 `cat debian/runit/package/admin/runit-0.6.4/package/commands` ; \
+	 `cat debian/runit/package/admin/runit-0.7.0/package/commands` ; \
 	do \
 	  echo "/package/admin/runit/command/$$i /command/$$i" \
 		>> debian/links ; \
 	done
 	for i in \
-	 `cat debian/runit/package/admin/runit-0.6.4/package/commands` ; \
+	 `cat debian/runit/package/admin/runit-0.7.0/package/commands` ; \
 	do \
 	  echo "/command/$$i /usr/local/bin/$$i" \
 		>> debian/links ; \
diff --git a/doc/install.html b/doc/install.html
index 99510e4..28d4c6b 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -13,14 +13,14 @@ Check that you have the recent version of
 <a href="http://cr.yp.to/daemontools.html">daemontools</a> installed.
 <p>
 Download
-<a href="runit-0.6.4.tar.gz">runit-0.6.4.tar.gz</a> into <tt>/package</tt>
+<a href="runit-0.7.0.tar.gz">runit-0.7.0.tar.gz</a> into <tt>/package</tt>
 and unpack the archive
 <pre>
   # cd /package
-  # gunzip runit-0.6.4.tar
-  # tar -xpf runit-0.6.4.tar
-  # rm runit-0.6.4.tar
-  # cd admin/runit-0.6.4
+  # gunzip runit-0.7.0.tar
+  # tar -xpf runit-0.7.0.tar
+  # rm runit-0.7.0.tar
+  # cd admin/runit-0.7.0
 </pre>
 Compile and install the <i>runit</i> programs
 <pre>
diff --git a/doc/replaceinit.html b/doc/replaceinit.html
index b4df1b9..17c11cc 100644
--- a/doc/replaceinit.html
+++ b/doc/replaceinit.html
@@ -107,7 +107,7 @@ default Unix process no 1 <i>runit</i>.
 </pre>
 To report success:
 <pre>
-  # ( uname -a ; cat /etc/runit/[123] ) | mail pape-runit-0.6.4@smarden.org
+  # ( uname -a ; cat /etc/runit/[123] ) | mail pape-runit-0.7.0@smarden.org
 </pre>
 <hr>
 
@@ -188,7 +188,7 @@ Use <b>init 6</b> to reboot and <b>init 0</b> to halt a system that runs
 <p>
 To report success:
 <pre>
-  # ( uname -a ; cat /etc/runit/[123] ) | mail pape-runit-0.6.4@smarden.org
+  # ( uname -a ; cat /etc/runit/[123] ) | mail pape-runit-0.7.0@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/runlevels.html b/doc/runlevels.html
index f4019c3..0d38d0b 100644
--- a/doc/runlevels.html
+++ b/doc/runlevels.html
@@ -27,12 +27,25 @@ Create the following direcotories and symlinks:
 Copy the content of <tt>/service/</tt> to <tt>/etc/runit/runsvdir/current</tt>
 and replace <tt>/service</tt> with a symlink:
 <pre>
- # cp -pr /service/* /etc/runit/runsvdir/current/
+ # cp -pR /service/* /etc/runit/runsvdir/current/
  # mv -f /service /service.old && ln -s /etc/runit/runsvdir/current /service
 </pre>
 You have now created two runlevels: <tt>default</tt> and <tt>single</tt>.
 The <tt>current</tt> runlevel is <tt>default</tt>. It is save to remove
 <tt>/service.old</tt> if you don't need it anymore.
+<p>
+Finally edit <tt>/etc/runit/2</tt> to set the <tt>default</tt> runlevel when
+stage 2 starts:
+<pre>
+ $ cat /etc/runit/2 
+ #!/bin/sh
+ PATH=/command:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin
+ 
+ <b>runsvchdir default &gt;/dev/null</b>
+ 
+ exec env - PATH=$PATH \
+ runsvdir /service 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'
+</pre>
 <hr>
 <a name="switch"><h3>Switching runlevels</h3></a>
 Switching runlevels with <i>runit</i> is done by
diff --git a/doc/upgrade.html b/doc/upgrade.html
index ded9b84..5b1f5e4 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -10,6 +10,39 @@
 <h1>runit - upgrading from previous versions</h1>
 <hr>
 
+<h3>0.6.0 to 0.7.0</h3>
+This version introduces runlevel support with the new
+<a href="runsvchdir.8.html">runsvchdir</a> program. See the
+<a href="runlevels.html">runlevels documentation</a> for more information.
+<p>
+The <a href="runsvdir.8.html">runsvdir</a> and
+<a href="runsv.8.html">runsv</a> programs have changed and should be
+restarted. If you want to switch runlevels, <tt>runsvdir</tt> must be
+restarted. This is done on the next reboot or by following these steps:
+<p>
+<ul>
+  <li>
+Login on console 5. Bring all services other than the <tt>getty-5</tt>
+service down:
+<pre>
+ # cd /service
+ # for i in *; do if test "$i" != getty-5; then svc -d $i; fi; done
+</pre>
+  <li>
+Check for the services being down:
+<pre>
+ # svstat /service/*
+</pre>
+  <li>
+If all services other than the <tt>getty-5</tt> service are down, kill
+<tt>runsvdir</tt> by sending it a HUP signal:
+<pre>
+ # kill -HUP &lt;pid_of_runsvdir&gt;
+</pre>
+Replace <tt>&lt;pid_of_runsvdir&gt;</tt> with the pid of <tt>runsvdir</tt>.
+The <tt>runit</tt> program starts the new <tt>runsvdir</tt> program now,
+which starts the new <tt>runsv</tt> processes.
+</ul>
 <h3>0.5.0 to 0.6.0</h3>
 There are two new programs, <a href="runsvdir.8.html">runsvdir</a> and
 <a href="runsv.8.html">runsv</a>, which replace the
diff --git a/package/CHANGES b/package/CHANGES
index 3a23b50..960a464 100644
--- a/package/CHANGES
+++ b/package/CHANGES
@@ -1,5 +1,5 @@
-runit 0.6.4
-Sun, 06 Oct 2002 12:23:56 +0200
+runit 0.7.0
+Mon, 07 Oct 2002 11:26:27 +0200
   * runsvdir.c: check service directory's inode and device in addition
     to mtime; sleep at least 1 second before restarting run svprocesses.
   * runsv.c: use status[19] for state information; control pipe supports e.
diff --git a/package/upgrade b/package/upgrade
index a0d1052..5a22a61 100755
--- a/package/upgrade
+++ b/package/upgrade
@@ -7,9 +7,9 @@ test -d src || ( echo 'Wrong working directory.'; exit 1 )
 here=`env - PATH=$PATH pwd`
 parent=`dirname $here`
 
-echo 'Creating symlink runit -> runit-0.6.4...'
+echo 'Creating symlink runit -> runit-0.7.0...'
 rm -f runit
-ln -s runit-0.6.4 runit
+ln -s runit-0.7.0 runit
 mv -f runit ..
 
 echo 'Making command links in /command...'
diff --git a/src/runsvchdir.c b/src/runsvchdir.c
index 97adb97..1bc808c 100644
--- a/src/runsvchdir.c
+++ b/src/runsvchdir.c
@@ -6,9 +6,10 @@
 #include "error.h"
 
 #define USAGE " dir"
-
 #define SVDIR "/etc/runit/runsvdir"
 
+#define VERSION "$Id"
+
 char *progname;
 char *new;
 
@@ -21,6 +22,9 @@ void fatal(char *m1, char *m2) {
 void fatalx(char *m1, char *m2) {
   strerr_die4x(111, progname, ": fatal: ", m1, m2);
 }
+void warn(char *m1, char *m2) {
+  strerr_warn5(progname, ": fatal: ", m1, m2, ": ", &strerr_sys);
+}
 
 int main (int argc, char **argv) {
   struct stat s;
@@ -47,8 +51,12 @@ int main (int argc, char **argv) {
   dev =s.st_dev;
   if (stat("current", &s) == -1)
     fatal("unable to stat: ", "current");
-  if ((s.st_ino == ino) && (s.st_dev == dev))
-    strerr_die2x(0, new, ": already current.");
+  if ((s.st_ino == ino) && (s.st_dev == dev)) {
+    buffer_puts(buffer_1, "runsvchdir: ");
+    buffer_puts(buffer_1, new);
+    buffer_putsflush(buffer_1, ": current.\n");
+    exit(0);
+  }
 
   if (unlink("current.new") == -1)
     if (errno != error_noent)
@@ -58,11 +66,16 @@ int main (int argc, char **argv) {
   if (unlink("previous") == -1)
     if (errno != error_noent)
       fatal("unable to unlink: ", "previous");
-  if (link("current", "previous") == -1)
+  if (rename("current", "previous") == -1)
     fatal("unable to copy: current to ", "previous");
-  if (rename("current.new", "current") == -1)
-    fatal("unabled to move: current.new to ", "current");
-
-  strerr_die2x(0, new, ": now current.");
+  if (rename("current.new", "current") == -1) {
+    warn("unable to move: current.new to ", "current");
+    if (rename("previous", "current") == -1)
+      fatal("unable to move previous back to ", "current");
+    exit(111);
+  }
+  buffer_puts(buffer_1, "runsvchdir: ");
+  buffer_puts(buffer_1, new);
+  buffer_putsflush(buffer_1, ": now current.\n");
   exit(0);
 }