diff options
author | Daniel Joseph Barnhart Clark <dclark@pobox.com> | 2006-08-05 19:19:27 +0000 |
---|---|---|
committer | Daniel Joseph Barnhart Clark <dclark@pobox.com> | 2006-08-05 19:19:27 +0000 |
commit | 46e88c9f72f5994aa7d7bf5f20aa6c002309bf7e (patch) | |
tree | 4f8c89adcb0830cc99d97168dcda4877c5df89c0 /encap/tools/daemontools/daemontools-0.76.ep | |
parent | 8f53e1d47c3f7a8ee2a1fe0290405e840cf1dadd (diff) | |
download | bcfg2-46e88c9f72f5994aa7d7bf5f20aa6c002309bf7e.tar.gz bcfg2-46e88c9f72f5994aa7d7bf5f20aa6c002309bf7e.tar.bz2 bcfg2-46e88c9f72f5994aa7d7bf5f20aa6c002309bf7e.zip |
* Added Makefiles for tools
* Fixes for daemontools - .svscan logging works now.
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2046 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'encap/tools/daemontools/daemontools-0.76.ep')
-rw-r--r-- | encap/tools/daemontools/daemontools-0.76.ep | 112 |
1 files changed, 110 insertions, 2 deletions
diff --git a/encap/tools/daemontools/daemontools-0.76.ep b/encap/tools/daemontools/daemontools-0.76.ep index 21e8c8293..e61ec1217 100644 --- a/encap/tools/daemontools/daemontools-0.76.ep +++ b/encap/tools/daemontools/daemontools-0.76.ep @@ -8,6 +8,7 @@ > <prereq package="patch-2.5.9" /> +<prereq package="m4-1.4.4" /> <environment variable="CC" @@ -271,6 +272,11 @@ cp package/run.rclocal ${ENCAP_SOURCE}/${ENCAP_PKGNAME}/package </source> <prepackage> +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.inittab.orig +mv package/boot.rclocal package/boot.inittab.orig mkdir var 2>/dev/null || exit 1 mkdir var/svc.d 2>/dev/null || exit 1 mkdir var/svc.d/svscan 2>/dev/null || exit 1 @@ -285,6 +291,109 @@ exec 2>&1 exec /command/multilog t /usr/local/var/multilog/svscan ]]></include_file> +<include_file name="bin/svscan.rc" mode="0755"><![CDATA[ +#!/bin/sh +# svscan.rc - replacement for /command/svscanboot +# * Combined with .svscan patch, logs svscan to a file +# * If /service/*/shutdown exists, run it before killing service + +PATH=/command:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin +SERVICES=${2:-"/service"} + +exec </dev/null >/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" +]]></include_file> + +<include_file name="package/run" mode="0755"><![CDATA[ +#!/bin/sh -e + +umask 022 +test -d package || ( echo 'Wrong working directory.'; exit 1 ) +test -d src || ( echo 'Wrong working directory.'; exit 1 ) + +if test -d /service +then + echo '/service exists. I assume that svscan is already running.' + exit 0 +fi + +echo 'Creating /service...' +mkdir /service +echo 'Creating symlink /service/.svscan -> /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 +]]></include_file> + +<include_file name="package/run.inittab" mode="0755"><![CDATA[ +#!/bin/sh -e + +if grep svscan.rc /etc/inittab >/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 +]]></include_file> + +<include_file name="package/boot.inittab" mode="0644"><![CDATA[ + +SV:2345:respawn:/command/svscan.rc start +SZ:S016:once:/command/svscan.rc stop +]]></include_file> + +<include_file name="package/run.rclocal" mode="0755"><![CDATA[ +#!/bin/sh -e + +if grep svscan.rc /etc/rc.local >/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 +]]></include_file> + +<include_file name="package/boot.rclocal" mode="0644"><![CDATA[ + +csh -cf '/command/svscan.rc start &' +]]></include_file> + <include_file name="postinstall" mode="0755"><![CDATA[ #!/bin/sh -e umask 002 @@ -293,11 +402,10 @@ LOG=${BASEDIR}/postinstall.log exec > $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 -test -d /service || mkdir /service -test -h /service/.svscan || ln -s /usr/local/var/svc.d/svscan /service/.svscan cd /usr/local/encap/daemontools-0.76 && ./package/run printf "Finished daemontools postinstall script.\n" ]]></include_file> |