From 79a8958bc2502912e2fbba8ca15ed1eb2377d614 Mon Sep 17 00:00:00 2001 From: Daniel Joseph Barnhart Clark Date: Tue, 20 Feb 2007 03:08:47 +0000 Subject: EncapPackages: Move from daemontools to runit to avoid any issues with redistributing patched daemontool binaries. git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2856 ce84e21b-d406-0410-9b95-82705330c041 --- encap/src/encap-profiles/daemontools-0.76.ep | 533 --------------------------- 1 file changed, 533 deletions(-) delete mode 100644 encap/src/encap-profiles/daemontools-0.76.ep (limited to 'encap/src/encap-profiles/daemontools-0.76.ep') diff --git a/encap/src/encap-profiles/daemontools-0.76.ep b/encap/src/encap-profiles/daemontools-0.76.ep deleted file mode 100644 index 02cc29eda..000000000 --- a/encap/src/encap-profiles/daemontools-0.76.ep +++ /dev/null @@ -1,533 +0,0 @@ - - - - - - - - - - - - - -PLATFORM_IF_MATCH(linux) -PLATFORM_ELSE - -PLATFORM_ENDIF - - - - - - extern int error_intr; - extern int error_nomem; -diff -ru daemontools-0.76/src/svscan.c daemontools-0.76.new/src/svscan.c ---- daemontools-0.76/src/svscan.c 2001-07-12 12:49:49.000000000 -0400 -+++ daemontools-0.76.new/src/svscan.c 2004-02-08 01:50:27.000000000 -0500 -@@ -1,6 +1,7 @@ - #include - #include - #include -+#include - #include "direntry.h" - #include "strerr.h" - #include "error.h" -@@ -14,6 +15,11 @@ - - #define SERVICES 1000 - -+#ifndef SVSCANINFO -+#define SVSCANINFO ".svscan" /* must begin with dot ('.') */ -+#endif -+ -+#define INFO "svscan: info: " - #define WARNING "svscan: warning: " - #define FATAL "svscan: fatal: " - -@@ -38,7 +44,7 @@ - int i; - const char *args[3]; - -- if (fn[0] == '.') return; -+ if (fn[0] == '.' && str_diff(fn,SVSCANINFO)) return; - - if (stat(fn,&st) == -1) { - strerr_warn4(WARNING,"unable to stat ",fn,": ",&strerr_sys); -@@ -59,7 +65,8 @@ - } - x[i].ino = st.st_ino; - x[i].dev = st.st_dev; -- x[i].pid = 0; -+ /*(fn[0]=='.' here only if SVSCANINFO; if so only supervise log/ subdir)*/ -+ x[i].pid = (fn[0] != '.') ? 0 : -1; - x[i].pidlog = 0; - x[i].flaglog = 0; - -@@ -190,12 +197,39 @@ - } - } - -+static void open_svscan_log(void) -+{ -+ const int i = numx; -+ struct stat st; -+ static char fn[] = SVSCANINFO; /* avoid compiler warning on const string */ -+ -+ /* (semi-paranoid; could be moreso) */ -+ if (fstat(STDIN_FILENO,&st) != 0 && errno == EBADF) -+ (void) open("/dev/null", O_RDONLY); -+ if (fstat(STDOUT_FILENO,&st) != 0 && errno == EBADF) -+ (void) open("/dev/null", O_WRONLY); -+ if (fstat(STDERR_FILENO,&st) != 0 && errno == EBADF) -+ (void) open("/dev/null", O_WRONLY); -+ -+ if (stat(fn,&st) == 0) { -+ start(fn); -+ if (i+1 == numx && x[i].pidlog != 0) { -+ (void) dup2(x[i].pi[1], STDOUT_FILENO); -+ (void) dup2(x[i].pi[1], STDERR_FILENO); -+ strerr_warn1("",0); -+ strerr_warn2(INFO,"*** Starting svscan",0); -+ } -+ } -+} -+ - int main(int argc,char **argv) - { - if (argv[0] && argv[1]) - if (chdir(argv[1]) == -1) - strerr_die4sys(111,FATAL,"unable to chdir to ",argv[1],": "); - -+ open_svscan_log(); -+ - for (;;) { - doit(); - sleep(5); - -]]> - - - - - - - - -./package/compile - - - -test -d ${ENCAP_SOURCE} || mkdir ${ENCAP_SOURCE} -test -d ${ENCAP_SOURCE}/${ENCAP_PKGNAME} || mkdir ${ENCAP_SOURCE}/${ENCAP_PKGNAME} -test -d ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/bin || mkdir ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/bin -test -d ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/src || mkdir ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/src -test -d ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package || mkdir ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package -cp command/* ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/bin -cp package/run ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package -cp package/commands ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package -cp package/boot.inittab ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package -cp package/boot.rclocal ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package -cp package/run.inittab ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package -cp package/run.rclocal ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package - - - - - - - -mv package/run package/run.orig -mv package/run.inittab package/run.inittab.orig -mv package/boot.inittab package/boot.inittab.orig -mv package/run.rclocal package/run.rclocal.orig -mv package/boot.rclocal package/boot.rclocal.orig -test -d var || mkdir var -test -d var/svc.d || mkdir var/svc.d -test -d var/svc.d/svscan || mkdir var/svc.d/svscan -test -d var/svc.d/svscan/log || mkdir var/svc.d/svscan/log -# Make "this encap is installed" sentinal file available in /usr/local/var/encap -test -d var/encap || mkdir var/encap -touch var/encap/${ENCAP_PKGNAME} - - -&1 -exec /command/multilog t /usr/local/var/multilog/svscan -]]> - - - -/dev/null 2>&1 - -for log_dir in "$SERVICES"/*/log "$SERVICES"/.svscan/log; do - if [ -d "$log_dir" ] \ - && svok "$log_dir" \ - && svstat "$log_dir" | grep -q ": up" - then - svc -ox "$log_dir" - fi -done - -for service_dir in "$SERVICES"/*; do - if [ -d "$service_dir" ] \ - && svok "$service_dir" \ - && svstat "$service_dir" | grep -q ": up" - then - [ -x "$service_dir"/shutdown ] && "$service_dir"/shutdown - svc -dx "$service_dir" - fi -done - -[ "$1" = "start" ] && exec env - PATH=$PATH svscan "$SERVICES" -]]> - - /usr/local/var/svc.d/svscan ...' -ln -s /usr/local/var/svc.d/svscan /service/.svscan - -if test -r /etc/inittab -then - /command/setlock /etc/inittab package/run.inittab -else - /command/setlock /etc/rc.local package/run.rclocal -fi -]]> - - - -/dev/null -then - echo 'inittab contains an svscan.rc line. I assume that svscan is already running. -' -else - echo 'Adding svscan.rc to inittab...' - rm -f /etc/inittab'{new}' - cat /etc/inittab package/boot.inittab > /etc/inittab'{new}' - mv -f /etc/inittab'{new}' /etc/inittab - kill -HUP 1 - echo 'init should start svscan now.' -fi -]]> - -/dev/null -then - echo 'Backing up inittab to .inittab.backup...' - rm -f /etc/.inittab.backup - cp -f /etc/inittab /etc/.inittab.backup - echo 'Removing svscan lines from inittab...' - rm -f /etc/inittab'{new}' - grep -v svscan /etc/inittab > /etc/inittab'{new}' - mv -f /etc/inittab'{new}' /etc/inittab - kill -HUP 1 - echo 'init should stop svscan now.' -else - echo 'inittab does not contain an svscan.rc line. -' -fi -]]> - - -/tmp/svscan-start.log 2>&1 -SZ:S016:once:/command/svscan.rc stop /tmp/svscan-stop.log 2>&1 -]]> - -/dev/null -then - echo 'rc.local contains an svscan.rc line. I assume that svscan is already running -.' -else - echo 'Adding svscan.rc to /etc/rc.local...' - rm -f /etc/rc.local'{new}' - cat /etc/rc.local package/boot.rclocal > /etc/rc.local'{new}' - mv -f /etc/rc.local'{new}' /etc/rc.local - echo 'Reboot now to start svscan.' -fi -]]> - -/dev/null -then - echo 'Backing up rc.local to .rc.local.backup...' - rm -f /etc/.rc.local.backup - cp -f /etc/rc.local /etc/.rc.local.backup - echo 'Removing svscan lines from /etc/rc.local...' - rm -f /etc/rc.local'{new}' - grep -v svscan /etc/rc.local > /etc/rc.local'{new}' - mv -f /etc/rc.local'{new}' /etc/rc.local - echo 'Reboot now to stop svscan.' -else - echo 'rc.local does not contain an svscan.rc line. -.' -fi -]]> - - - - $LOG 2>&1 -printf "Running daemontools postinstall script...\n" -date -test -d /usr/local/var || mkdir /usr/local/var -test -d /usr/local/var/multilog || mkdir /usr/local/var/multilog -test -d /usr/local/var/multilog/svscan || mkdir /usr/local/var/multilog/svscan -test -h /command || ln -s /usr/local/encap/daemontools-0.76/bin /command -cd /usr/local/encap/daemontools-0.76 && ./package/run -printf "Finished daemontools postinstall script.\n" -]]> - - - - -description daemontools - a collection of tools for managing UNIX services -exclude src -exclude package - - - -- cgit v1.2.3-1-g7c22