From: František Dvořák Date: Sat, 9 Mar 2013 19:53:02 +0000 (+0000) Subject: Startup scripts improvements - daemons can be started individually now. X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=d4fffcfa6fb024d809331953768b82cf69a4e49a;p=jra1mw.git Startup scripts improvements - daemons can be started individually now. Changes: - for each daemon and distribution own starting script - daemon-specific environment configuration - using RUN_xxx=no to disable daemons on Debian - added dependency on lsb-base on Debian - no default runlevels on RedHat - update deployment (setup, yaim) - update packaging (deb, rpm) --- diff --git a/org.glite.lb.harvester/Makefile b/org.glite.lb.harvester/Makefile index cc6d8f6..32c736d 100644 --- a/org.glite.lb.harvester/Makefile +++ b/org.glite.lb.harvester/Makefile @@ -18,13 +18,13 @@ CC=gcc VPATH=${top_srcdir}/src:${top_srcdir}/doc SOURCES=\ - config/systemd.* config/startup \ + config/systemd.* config/startup config/startup.* \ doc/* \ examples/test.* \ project/.post* project/.pre* \ src/*.c \ Makefile -SOURCES_EXEC=config/startup examples/*.sh +SOURCES_EXEC=config/startup config/startup.* examples/*.sh GLITE_LBJP_COMMON_GSS_CFLAGS?=`PKG_CONFIG_PATH=$$PKG_CONFIG_PATH:${PREFIX}${prefix}/${libdir}/pkgconfig pkg-config glite-security-gss --cflags` CPPFLAGS:=-I${stagedir}${prefix}/include -D_GNU_SOURCE -D_REENTRANT ${GLITE_LBJP_COMMON_GSS_CFLAGS} ${CPPFLAGS} diff --git a/org.glite.lb.harvester/config/startup.debian.harvester b/org.glite.lb.harvester/config/startup.debian.harvester new file mode 100755 index 0000000..f70fb81 --- /dev/null +++ b/org.glite.lb.harvester/config/startup.debian.harvester @@ -0,0 +1,127 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: glite-lb-harvester +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: gLite Logging and Bookkeeping harvester +# Description: gLite L&B harvester daemon gathers job informations from +# multiple L&B servers using L&B notifications. +### END INIT INFO + +# To enable harvesting is required to set $GLITE_LB_HARVESTER_OPTIONS: +# 1) -m $GLITE_LB_HARVESTER_DBCS, or +# 2) -c /etc/glite-lb-harvester.conf + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="L&B harvester" +NAME=glite-lb-harvester +DAEMON=/usr/bin/$NAME +PIDFILE=/var/run/glite/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +RUN_HARVESTER=yes + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -x "$DAEMON" ] || exit 0 + +[ -r /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -r /etc/glite.conf ] && . /etc/glite.conf +[ -r /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -r /etc/default/glite-lb ] && . /etc/default/glite-lb +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +if [ "x$RUN_HARVESTER" != "xyes" ]; then + echo "$DESC disabled." + exit 0 +fi + +do_start() +{ + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec /usr/bin/env $env $DAEMON -- \ + --daemon $GLITE_LB_HARVESTER_OPTIONS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/10/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/org.glite.lb.harvester/config/startup.redhat.harvester b/org.glite.lb.harvester/config/startup.redhat.harvester new file mode 100755 index 0000000..939926c --- /dev/null +++ b/org.glite.lb.harvester/config/startup.redhat.harvester @@ -0,0 +1,105 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/glite-lb-harvester +# +# gLite Logging and Bookkeeping harvester +# +# To enable harvesting is required to set $GLITE_LB_HARVESTER_OPTIONS: +# 1) -m $GLITE_LB_HARVESTER_DBCS, or +# 2) -c /etc/glite-lb-harvester.conf +# +# chkconfig: - 75 25 +# description: gLite L&B harvester daemon gathers job informations from \ +# multiple L&B servers using L&B notifications. +# processname: glite-lb-harvester +# pidfile: /var/run/glite/glite-lb-harvester.pid + +### BEGIN INIT INFO +# Provides: glite-lb-harvester +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Short-Description: gLite Logging and Bookkeeping harvester +# Description: gLite L&B harvester daemon gathers job informations from +# multiple L&B servers using L&B notifications. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +prog=glite-lb-harvester +exec=/usr/bin/$prog +lockfile=/var/lock/subsys/$prog + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -f /etc/glite.conf ] && . /etc/glite.conf +[ -f /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -f /etc/sysconfig/glite-lb ] && . /etc/sysconfig/glite-lb +[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +start() { + [ -x $exec ] || exit 5 + + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + echo -n "Starting $prog: " + daemon --user $GLITE_USER $env $exec --daemon $GLITE_LB_HARVESTER_OPTIONS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n "Shutting down $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +case "$1" in + start) + status $prog >/dev/null 2>&1 && exit 0 + start + ;; + stop) + status $prog >/dev/null 2>&1 || exit 0 + stop + ;; + status) + status $prog + ;; + restart|reload|force-reload) + stop + start + ;; + condrestart|try-restart) + status $prog >/dev/null 2>&1 || exit 0 + stop + start + ;; + *) + echo "Usage: {start|stop|status|reload|restart|condrestart|try-restart|force-reload}" + exit 2 + ;; +esac +exit $? diff --git a/org.glite.lb.harvester/project/debian.glite-lb-harvester.install b/org.glite.lb.harvester/project/debian.glite-lb-harvester.install index 6677285..72589e0 100644 --- a/org.glite.lb.harvester/project/debian.glite-lb-harvester.install +++ b/org.glite.lb.harvester/project/debian.glite-lb-harvester.install @@ -1,4 +1,3 @@ -etc/init.d/glite-lb-harvester usr/bin/* usr/lib/glite-lb/examples/* usr/share/glite/* diff --git a/org.glite.lb.harvester/project/debian.rules b/org.glite.lb.harvester/project/debian.rules index 043e7d9..2446139 100644 --- a/org.glite.lb.harvester/project/debian.rules +++ b/org.glite.lb.harvester/project/debian.rules @@ -28,7 +28,7 @@ build-stamp: configure-stamp clean: configure-stamp dh_testdir dh_testroot - rm -f configure-stamp build-stamp + rm -f configure-stamp build-stamp debian/glite-lb-harvester.init $(MAKE) clean rm -f Makefile.inc config.status *.spec dh_clean @@ -43,6 +43,8 @@ install: build-stamp mkdir -p debian/$(p_dbg)/usr/share/doc ln -s $(p_base) debian/$(p_dbg)/usr/share/doc/$(p_dbg) mv debian/tmp/usr/share/doc/glite-lb-harvester-@MAJOR@.@MINOR@.@REVISION@ debian/$(p_base)/usr/share/doc/$(p_base) + rm -rf debian/tmp/etc/init.d + cp -p config/startup.debian.harvester debian/glite-lb-harvester.init binary-indep: @@ -54,7 +56,7 @@ binary-arch: install dh_installexamples dh_installman dh_installlogrotate - dh_installinit --onlyscripts --no-start + dh_installinit dh_installcron dh_install --fail-missing dh_link diff --git a/org.glite.lb.harvester/project/glite-lb-harvester.spec b/org.glite.lb.harvester/project/glite-lb-harvester.spec index d6f75ae..e726f6c 100644 --- a/org.glite.lb.harvester/project/glite-lb-harvester.spec +++ b/org.glite.lb.harvester/project/glite-lb-harvester.spec @@ -61,9 +61,9 @@ cat > ${RPM_BUILD_ROOT}%{_prefix}/lib/tmpfiles.d/glite-lb-harvester.conf < /dev/null 2>&1" || echo 'Stripped RPATH' mkdir -p $RPM_BUILD_ROOT/var/lib/glite diff --git a/org.glite.lb.logger/Makefile b/org.glite.lb.logger/Makefile index e942401..1d9f16a 100644 --- a/org.glite.lb.logger/Makefile +++ b/org.glite.lb.logger/Makefile @@ -21,7 +21,7 @@ CC=gcc VPATH:=${top_srcdir}/src:${top_srcdir}/test:${top_srcdir}/doc SOURCES=\ - config/startup config/glite-lb-logger.* config/systemd.* \ + config/startup config/startup.* config/glite-lb-logger.* config/systemd.* \ doc/*.8 \ interface/*.h \ project/.post* project/.pre* \ @@ -29,7 +29,7 @@ SOURCES=\ src-nt/*.cpp src-nt/*.H src-nt/Makefile src-nt/test/*.cpp \ test/*.c test/*.cpp test/*.h \ Makefile -SOURCES_EXEC=config/startup src/*.sh +SOURCES_EXEC=config/startup config/startup.* src/*.sh VERSION=-DVERSION=\"GLite-${version}\" @@ -152,17 +152,23 @@ INTERLOG_TEST_OBJS:= \ MAN_GZ:=glite-lb-interlogd.8.gz glite-lb-logd.8.gz MAN = $(MAN_GZ:.gz=) -all compile: startup $(LOGD) $(INTERLOGD) $(NOTIF_INTERLOGD) ${MAN_GZ} +SCRIPTS:=startup +SCRIPTS_SRC=$(addprefix ${top_srcdir}/config/,${SCRIPTS}) -startup: ${top_srcdir}/config/startup +all compile: ${SCRIPTS} $(LOGD) $(INTERLOGD) $(NOTIF_INTERLOGD) ${MAN_GZ} + +${SCRIPTS}: ${SCRIPTS_SRC} glite_var="${localstatedir}/glite"; \ if echo "${localstatedir}" | grep 'glite'>/dev/null; then \ glite_var="${localstatedir}"; \ fi; \ - sed -e 's:@glite_prefix@:${sysroot}${prefix}:g' -e 's:@glite_etc@:${sysconfdir}:g' -e "s:@glite_var@:$$glite_var:g" -e 's:@defaultdir@:${sysdefaultdir}:g' $< > $@ + sed -e 's:@glite_prefix@:${sysroot}${prefix}:g' -e 's:@glite_etc@:${sysconfdir}:g' -e "s:@glite_var@:$$glite_var:g" -e 's:@defaultdir@:${sysdefaultdir}:g' ${top_srcdir}/config/$@ > $@ ifneq ($(os_type),debian) sed -i 's/# \(Default-Start\|Default-Stop\):.*/# \1:/' $@ endif + sed "s/^@$(os_type)@//" $@ > $@.tmp + grep -v '^@' $@.tmp > $@ + rm $@.tmp chmod +x $@ glite-lb-logd: ${LOGD_OBJS} @@ -280,7 +286,7 @@ il_test.o IlTestBase.o server_msgTest.o event_queueTest.o input_queue_socketTest ${CXX} ${CFLAGS} ${CPPUNIT_CFLAGS} -c $< -o $@ clean: - rm -rvf .libs/ *.o *.lo *.no ${LOGD} ${INTERLOGD} ${NOTIF_INTERLOGD} ${MAN_GZ} startup + rm -rvf .libs/ *.o *.lo *.no ${LOGD} ${INTERLOGD} ${NOTIF_INTERLOGD} ${MAN_GZ} ${SCRIPTS} rm -rvf check.ll check.il rm -rvf dist ${package}-*.tar.gz diff --git a/org.glite.lb.logger/config/startup b/org.glite.lb.logger/config/startup index cdc4db0..75e965e 100755 --- a/org.glite.lb.logger/config/startup +++ b/org.glite.lb.logger/config/startup @@ -5,8 +5,8 @@ # Short-Description: L&B local logger and interlogger deamons # Required-Start: $remote_fs $network $syslog # Required-Stop: $remote_fs $network $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 +# Default-Start: +# Default-Stop: ### END INIT INFO # chkconfig: - 76 24 # diff --git a/org.glite.lb.logger/config/startup.debian.interlogd b/org.glite.lb.logger/config/startup.debian.interlogd new file mode 100755 index 0000000..972b4e8 --- /dev/null +++ b/org.glite.lb.logger/config/startup.debian.interlogd @@ -0,0 +1,126 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: glite-lb-interlogd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: gLite Logging and Bookkeeping interlogger +# Description: gLite L&B interlogger daemon sends the events stored in local +# files to L&B server. +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="L&B interlogger" +NAME=glite-lb-interlogd +DAEMON=/usr/bin/$NAME +PIDFILE=/var/run/glite/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +RUN_IL=yes + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -x "$DAEMON" ] || exit 0 + +[ -r /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -r /etc/glite.conf ] && . /etc/glite.conf +[ -r /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -r /etc/default/glite-lb ] && . /etc/default/glite-lb +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +if [ "x$RUN_IL" != "xyes" ]; then + echo "$DESC disabled." + echo "For automatic configuration, please run glite-lb-setup script." + echo "When configuring L&B manually, please also set RUN_IL to 'yes' in" + echo "/etc/default/glite-lb." + exit 0 +fi + +do_start() +{ + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec /usr/bin/env $env $DAEMON -- \ + $GLITE_LB_IL_OPTIONS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/10/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/org.glite.lb.logger/config/startup.debian.logd b/org.glite.lb.logger/config/startup.debian.logd new file mode 100755 index 0000000..8114a6e --- /dev/null +++ b/org.glite.lb.logger/config/startup.debian.logd @@ -0,0 +1,124 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: glite-lb-logd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: gLite Logging and Bookkeeping local logger +# Description: gLite L&B local logger deamon receives events and stores +# them locally to be send by interlogger. +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="L&B local logger" +NAME=glite-lb-logd +DAEMON=/usr/bin/$NAME +PIDFILE=/var/run/glite/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +RUN_LOGD=yes + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -x "$DAEMON" ] || exit 0 + +[ -r /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -r /etc/glite.conf ] && . /etc/glite.conf +[ -r /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -r /etc/default/glite-lb ] && . /etc/default/glite-lb +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +if [ "x$RUN_LOGD" != "xyes" ]; then + echo "$DESC disabled." + exit 0 +fi + +do_start() +{ + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec /usr/bin/env $env $DAEMON -- \ + $GLITE_LB_LOGD_OPTIONS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/10/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + echo + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/org.glite.lb.logger/config/startup.debian.notif-interlogd b/org.glite.lb.logger/config/startup.debian.notif-interlogd new file mode 100755 index 0000000..f81620a --- /dev/null +++ b/org.glite.lb.logger/config/startup.debian.notif-interlogd @@ -0,0 +1,123 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: glite-lb-notif-interlogd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: gLite Logging and Bookkeeping notification interlogger +# Description: gLite L&B notification interlogger daemon sends reliably +# notifications from L&B server. +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="L&B notification interlogger" +NAME=glite-lb-notif-interlogd +DAEMON=/usr/bin/$NAME +PIDFILE=/var/run/glite/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +RUN_NOTIF_IL=yes + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -x "$DAEMON" ] || exit 0 + +[ -r /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -r /etc/glite.conf ] && . /etc/glite.conf +[ -r /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -r /etc/default/glite-lb ] && . /etc/default/glite-lb +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +if [ "x$RUN_NOTIF_IL" != "xyes" ]; then + echo "$DESC disabled." + exit 0 +fi + +do_start() +{ + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec /usr/bin/env $env $DAEMON -- \ + -M 10485760 $GLITE_LB_NOTIF_IL_OPTIONS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/10/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/org.glite.lb.logger/config/startup.debian.proxy-interlogd b/org.glite.lb.logger/config/startup.debian.proxy-interlogd new file mode 100755 index 0000000..14700fe --- /dev/null +++ b/org.glite.lb.logger/config/startup.debian.proxy-interlogd @@ -0,0 +1,123 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: glite-lb-proxy-interlogd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: gLite Logging and Bookkeeping proxy interlogger +# Description: gLite L&B proxy interlogger daemon sends the events stored in local +# files to the local proxy L&B server. +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="L&B proxy interlogger" +NAME=glite-lb-proxy-interlogd +DAEMON=/usr/bin/$NAME +PIDFILE=/var/run/glite/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +RUN_PROXY_IL=yes + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -x "$DAEMON" ] || exit 0 + +[ -r /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -r /etc/glite.conf ] && . /etc/glite.conf +[ -r /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -r /etc/default/glite-lb ] && . /etc/default/glite-lb +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +if [ "x$RUN_PROXY_IL" != "xyes" ]; then + echo "$DESC disabled." + exit 0 +fi + +do_start() +{ + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec /usr/bin/env $env $DAEMON -- \ + $GLITE_LB_PROXY_IL_OPTIONS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/10/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/org.glite.lb.logger/config/startup.redhat.interlogd b/org.glite.lb.logger/config/startup.redhat.interlogd new file mode 100755 index 0000000..a0b30f1 --- /dev/null +++ b/org.glite.lb.logger/config/startup.redhat.interlogd @@ -0,0 +1,101 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/glite-lb-interlogd +# +# gLite Logging and Bookkeeping interlogger +# +# chkconfig: - 76 24 +# description: gLite L&B interlogger daemon sends the events stored in local \ +# files to L&B server. +# processname: glite-lb-interlogd +# pidfile: /var/run/glite/glite-lb-interlogd.pid + +### BEGIN INIT INFO +# Provides: glite-lb-interlogd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Short-Description: gLite Logging and Bookkeeping interlogger +# Description: gLite L&B interlogger daemon sends the events stored in local +# files to L&B server. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +prog=glite-lb-interlogd +exec=/usr/bin/$prog +lockfile=/var/lock/subsys/$prog + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -f /etc/glite.conf ] && . /etc/glite.conf +[ -f /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -f /etc/sysconfig/glite-lb ] && . /etc/sysconfig/glite-lb +[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +start() { + [ -x $exec ] || exit 5 + + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + echo -n "Starting $prog: " + daemon --user $GLITE_USER $env $exec $GLITE_LB_IL_OPTIONS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n "Shutting down $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +case "$1" in + start) + status $prog >/dev/null 2>&1 && exit 0 + start + ;; + stop) + status $prog >/dev/null 2>&1 || exit 0 + stop + ;; + status) + status $prog + ;; + restart|reload|force-reload) + stop + start + ;; + condrestart|try-restart) + status $prog >/dev/null 2>&1 || exit 0 + stop + start + ;; + *) + echo "Usage: {start|stop|status|reload|restart|condrestart|try-restart|force-reload}" + exit 2 + ;; +esac +exit $? diff --git a/org.glite.lb.logger/config/startup.redhat.logd b/org.glite.lb.logger/config/startup.redhat.logd new file mode 100755 index 0000000..ccb43e7 --- /dev/null +++ b/org.glite.lb.logger/config/startup.redhat.logd @@ -0,0 +1,101 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/glite-lb-logd +# +# gLite Logging and Bookkeeping local logger +# +# chkconfig: - 76 24 +# description: gLite L&B local logger deamon receives events and stores \ +# them locally to be send by interlogger. +# processname: glite-lb-logd +# pidfile: /var/run/glite/glite-lb-logd.pid + +### BEGIN INIT INFO +# Provides: glite-lb-logd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Short-Description: gLite Logging and Bookkeeping local logger +# Description: gLite L&B local logger deamon receives events and stores +# them locally to be send by interlogger. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +prog=glite-lb-logd +exec=/usr/bin/$prog +lockfile=/var/lock/subsys/$prog + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -f /etc/glite.conf ] && . /etc/glite.conf +[ -f /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -f /etc/sysconfig/glite-lb ] && . /etc/sysconfig/glite-lb +[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +start() { + [ -x $exec ] || exit 5 + + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + echo -n "Starting $prog: " + daemon --user $GLITE_USER $env $exec $GLITE_LB_LOGD_OPTIONS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n "Shutting down $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +case "$1" in + start) + status $prog >/dev/null 2>&1 && exit 0 + start + ;; + stop) + status $prog >/dev/null 2>&1 || exit 0 + stop + ;; + status) + status $prog + ;; + restart|reload|force-reload) + stop + start + ;; + condrestart|try-restart) + status $prog >/dev/null 2>&1 || exit 0 + stop + start + ;; + *) + echo "Usage: {start|stop|status|reload|restart|condrestart|try-restart|force-reload}" + exit 2 + ;; +esac +exit $? diff --git a/org.glite.lb.logger/config/startup.redhat.notif-interlogd b/org.glite.lb.logger/config/startup.redhat.notif-interlogd new file mode 100755 index 0000000..f09c53f --- /dev/null +++ b/org.glite.lb.logger/config/startup.redhat.notif-interlogd @@ -0,0 +1,101 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/glite-lb-notif-interlogd +# +# gLite Logging and Bookkeeping notification interlogger +# +# chkconfig: - 75 25 +# description: gLite L&B notification interlogger daemon sends reliably \ +# notifications from L&B server. +# processname: glite-lb-notif-interlogd +# pidfile: /var/run/glite/glite-lb-notif-interlogd.pid + +### BEGIN INIT INFO +# Provides: glite-lb-notif-interlogd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Short-Description: gLite Logging and Bookkeeping notification interlogger +# Description: gLite L&B notification interlogger daemon sends reliably +# notifications from L&B server. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +prog=glite-lb-notif-interlogd +exec=/usr/bin/$prog +lockfile=/var/lock/subsys/$prog + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -f /etc/glite.conf ] && . /etc/glite.conf +[ -f /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -f /etc/sysconfig/glite-lb ] && . /etc/sysconfig/glite-lb +[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +start() { + [ -x $exec ] || exit 5 + + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + echo -n "Starting $prog: " + daemon --user $GLITE_USER $env $exec -M 10485760 $GLITE_LB_NOTIF_IL_OPTIONS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n "Shutting down $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +case "$1" in + start) + status $prog >/dev/null 2>&1 && exit 0 + start + ;; + stop) + status $prog >/dev/null 2>&1 || exit 0 + stop + ;; + status) + status $prog + ;; + restart|reload|force-reload) + stop + start + ;; + condrestart|try-restart) + status $prog >/dev/null 2>&1 || exit 0 + stop + start + ;; + *) + echo "Usage: {start|stop|status|reload|restart|condrestart|try-restart|force-reload}" + exit 2 + ;; +esac +exit $? diff --git a/org.glite.lb.logger/config/startup.redhat.proxy-interlogd b/org.glite.lb.logger/config/startup.redhat.proxy-interlogd new file mode 100755 index 0000000..bdb13db --- /dev/null +++ b/org.glite.lb.logger/config/startup.redhat.proxy-interlogd @@ -0,0 +1,101 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/glite-lb-proxy-interlogd +# +# gLite Logging and Bookkeeping proxy interlogger +# +# chkconfig: - 76 24 +# description: gLite L&B proxy interlogger daemon sends the events stored in local \ +# files to the local proxy L&B server. +# processname: glite-lb-proxy-interlogd +# pidfile: /var/run/glite/glite-lb-proxy-interlogd.pid + +### BEGIN INIT INFO +# Provides: glite-lb-proxy-interlogd +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Short-Description: gLite Logging and Bookkeeping proxy interlogger +# Description: gLite L&B proxy interlogger daemon sends the events stored in local +# files to the local proxy L&B server. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +prog=glite-lb-proxy-interlogd +exec=/usr/bin/$prog +lockfile=/var/lock/subsys/$prog + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -f /etc/glite.conf ] && . /etc/glite.conf +[ -f /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -f /etc/sysconfig/glite-lb ] && . /etc/sysconfig/glite-lb +[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +start() { + [ -x $exec ] || exit 5 + + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + echo -n "Starting $prog: " + daemon --user $GLITE_USER $env $exec $GLITE_LB_PROXY_IL_OPTIONS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n "Shutting down $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +case "$1" in + start) + status $prog >/dev/null 2>&1 && exit 0 + start + ;; + stop) + status $prog >/dev/null 2>&1 || exit 0 + stop + ;; + status) + status $prog + ;; + restart|reload|force-reload) + stop + start + ;; + condrestart|try-restart) + status $prog >/dev/null 2>&1 || exit 0 + stop + start + ;; + *) + echo "Usage: {start|stop|status|reload|restart|condrestart|try-restart|force-reload}" + exit 2 + ;; +esac +exit $? diff --git a/org.glite.lb.logger/config/systemd.interlogd b/org.glite.lb.logger/config/systemd.interlogd index 8c24c73..ca10f52 100644 --- a/org.glite.lb.logger/config/systemd.interlogd +++ b/org.glite.lb.logger/config/systemd.interlogd @@ -13,8 +13,9 @@ Environment=X509_USER_CERT=/var/lib/glite/.certs/hostcert.pem Environment=X509_USER_KEY=/var/lib/glite/.certs/hostkey.pem EnvironmentFile=-/etc/profile.d/grid-env.sh EnvironmentFile=-/etc/sysconfig/glite-lb +EnvironmentFile=-/etc/sysconfig/glite-lb-interlogd PIDFile=/var/run/glite/glite-lb-interlogd.pid -ExecStart=/usr/bin/glite-lb-interlogd $GLITE_LB_INTERLOGD_OPTIONS +ExecStart=/usr/bin/glite-lb-interlogd $GLITE_LB_IL_OPTIONS [Install] WantedBy=multi-user.target diff --git a/org.glite.lb.logger/config/systemd.logd b/org.glite.lb.logger/config/systemd.logd index 03245ec..5ac76fd 100644 --- a/org.glite.lb.logger/config/systemd.logd +++ b/org.glite.lb.logger/config/systemd.logd @@ -14,6 +14,7 @@ Environment=X509_USER_CERT=/var/lib/glite/.certs/hostcert.pem Environment=X509_USER_KEY=/var/lib/glite/.certs/hostkey.pem EnvironmentFile=-/etc/profile.d/grid-env.sh EnvironmentFile=-/etc/sysconfig/glite-lb +EnvironmentFile=-/etc/sysconfig/glite-lb-logd PIDFile=/var/run/glite/glite-lb-logd.pid ExecStart=/usr/bin/glite-lb-logd $GLITE_LB_LOGD_OPTIONS diff --git a/org.glite.lb.logger/config/systemd.notif-interlogd b/org.glite.lb.logger/config/systemd.notif-interlogd index e9eff02..d1d1f44 100644 --- a/org.glite.lb.logger/config/systemd.notif-interlogd +++ b/org.glite.lb.logger/config/systemd.notif-interlogd @@ -13,6 +13,7 @@ Environment=X509_USER_CERT=/var/lib/glite/.certs/hostcert.pem Environment=X509_USER_KEY=/var/lib/glite/.certs/hostkey.pem EnvironmentFile=-/etc/profile.d/grid-env.sh EnvironmentFile=-/etc/sysconfig/glite-lb +EnvironmentFile=-/etc/sysconfig/glite-lb-notif-interlogd PIDFile=/var/run/glite/glite-lb-notif-interlogd.pid ExecStart=/usr/bin/glite-lb-notif-interlogd -M 10485760 $GLITE_LB_NOTIF_IL_OPTIONS diff --git a/org.glite.lb.logger/config/systemd.proxy-interlogd b/org.glite.lb.logger/config/systemd.proxy-interlogd index f2f1c67..c0c8679 100644 --- a/org.glite.lb.logger/config/systemd.proxy-interlogd +++ b/org.glite.lb.logger/config/systemd.proxy-interlogd @@ -13,6 +13,7 @@ Environment=X509_USER_CERT=/var/lib/glite/.certs/hostcert.pem Environment=X509_USER_KEY=/var/lib/glite/.certs/hostkey.pem EnvironmentFile=-/etc/profile.d/grid-env.sh EnvironmentFile=-/etc/sysconfig/glite-lb +EnvironmentFile=-/etc/sysconfig/glite-lb-proxy-interlogd PIDFile=/var/run/glite/glite-lb-proxy-interlogd.pid ExecStart=/usr/bin/glite-lb-proxy-interlogd $GLITE_LB_PROXY_IL_OPTIONS diff --git a/org.glite.lb.logger/project/debian.control b/org.glite.lb.logger/project/debian.control index 03dbd08..c55c862 100644 --- a/org.glite.lb.logger/project/debian.control +++ b/org.glite.lb.logger/project/debian.control @@ -12,7 +12,7 @@ DM-Upload-Allowed: yes Package: glite-lb-logger Section: misc Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, glite-lbjp-common-log +Depends: ${shlibs:Depends}, ${misc:Depends}, glite-lbjp-common-log, lsb-base (>= 3.2-14) Description: @SUMMARY@ @DEBIAN_DESCRIPTION@ diff --git a/org.glite.lb.logger/project/debian.glite-lb-logger.install b/org.glite.lb.logger/project/debian.glite-lb-logger.install index dc2cb58..006a40e 100644 --- a/org.glite.lb.logger/project/debian.glite-lb-logger.install +++ b/org.glite.lb.logger/project/debian.glite-lb-logger.install @@ -1,3 +1,3 @@ -etc/init.d/* +etc/init.d/glite-lb-locallogger usr/bin/* usr/share/man/man8/* diff --git a/org.glite.lb.logger/project/debian.rules b/org.glite.lb.logger/project/debian.rules index d70eec7..9793be4 100644 --- a/org.glite.lb.logger/project/debian.rules +++ b/org.glite.lb.logger/project/debian.rules @@ -29,7 +29,7 @@ build-stamp: configure-stamp clean: configure-stamp dh_testdir dh_testroot - rm -f configure-stamp build-stamp + rm -f configure-stamp build-stamp debian/*.init $(MAKE) clean rm -f Makefile.inc config.status *.spec dh_clean @@ -45,6 +45,10 @@ install: build-stamp mkdir -p debian/$(p_dev)/usr/share/doc ln -s $(p_base) debian/$(p_dbg)/usr/share/doc/$(p_dbg) ln -s $(p_base) debian/$(p_dev)/usr/share/doc/$(p_dev) + cp -p config/startup.debian.logd debian/glite-lb-logd.init + cp -p config/startup.debian.interlogd debian/glite-lb-interlogd.init + cp -p config/startup.debian.notif-interlogd debian/glite-lb-notif-interlogd.init + cp -p config/startup.debian.proxy-interlogd debian/glite-lb-proxy-interlogd.init binary-indep: @@ -56,7 +60,11 @@ binary-arch: install dh_installexamples dh_installman dh_installlogrotate - dh_installinit --onlyscripts --no-start --name=glite-lb-locallogger + dh_installinit --onlyscripts --no-start -p$(p_base) --name=glite-lb-locallogger + dh_installinit --name=glite-lb-logd + dh_installinit --name=glite-lb-interlogd + dh_installinit --name=glite-lb-notif-interlogd + dh_installinit --name=glite-lb-proxy-interlogd dh_installcron dh_install --fail-missing dh_link diff --git a/org.glite.lb.logger/project/glite-lb-logger.spec b/org.glite.lb.logger/project/glite-lb-logger.spec index f597092..5bd8af4 100644 --- a/org.glite.lb.logger/project/glite-lb-logger.spec +++ b/org.glite.lb.logger/project/glite-lb-logger.spec @@ -69,9 +69,11 @@ cat > ${RPM_BUILD_ROOT}%{_prefix}/lib/tmpfiles.d/glite-lb-logger.conf < /dev/null 2>&1" || echo 'Stripped RPATH' mkdir -p $RPM_BUILD_ROOT/var/lib/glite @@ -106,9 +108,15 @@ if [ $1 -eq 1 ] ; then /bin/systemctl daemon-reload >/dev/null 2>&1 || : fi %else -/sbin/chkconfig --add glite-lb-locallogger +/sbin/chkconfig --add glite-lb-logd +/sbin/chkconfig --add glite-lb-interlogd +/sbin/chkconfig --add glite-lb-notif-interlogd +/sbin/chkconfig --add glite-lb-proxy-interlogd if [ $1 -eq 1 ] ; then - /sbin/chkconfig glite-lb-locallogger off + /sbin/chkconfig glite-lb-logd off + /sbin/chkconfig glite-lb-interlogd off + /sbin/chkconfig glite-lb-notif-interlogd off + /sbin/chkconfig glite-lb-proxy-interlogd off fi %endif @@ -132,8 +140,14 @@ if [ $1 -eq 0 ] ; then fi %else if [ $1 -eq 0 ] ; then - /sbin/service glite-lb-locallogger stop >/dev/null 2>&1 - /sbin/chkconfig --del glite-lb-locallogger + /sbin/service glite-lb-logd stop >/dev/null 2>&1 + /sbin/service glite-lb-interlogd stop >/dev/null 2>&1 + /sbin/service glite-lb-notif-interlogd stop >/dev/null 2>&1 + /sbin/service glite-lb-proxy-interlogd stop >/dev/null 2>&1 + /sbin/chkconfig --del glite-lb-logd + /sbin/chkconfig --del glite-lb-interlogd + /sbin/chkconfig --del glite-lb-notif-interlogd + /sbin/chkconfig --del glite-lb-proxy-interlogd fi %endif @@ -154,7 +168,13 @@ if [ $1 -ge 1 ] ; then fi %else if [ "$1" -ge "1" ] ; then - /sbin/service glite-lb-locallogger condrestart >/dev/null 2>&1 || : + /sbin/service glite-lb-logd condrestart >/dev/null 2>&1 || : + /sbin/service glite-lb-interlogd condrestart >/dev/null 2>&1 || : + /sbin/service glite-lb-notif-interlogd condrestart >/dev/null 2>&1 || : + /sbin/service glite-lb-proxy-interlogd condrestart >/dev/null 2>&1 || : + + # upgrade from lb.logger <= 2.4.15 (L&B <= 4.0.4) + /sbin/chkconfig --del glite-lb-locallogger fi %endif @@ -183,6 +203,10 @@ fi %{_unitdir}//glite-lb-proxy-interlogd.service %else %{_initrddir}/glite-lb-locallogger +%{_initrddir}/glite-lb-logd +%{_initrddir}/glite-lb-interlogd +%{_initrddir}/glite-lb-notif-interlogd +%{_initrddir}/glite-lb-proxy-interlogd %endif %{_bindir}/glite-lb-interlogd %{_bindir}/glite-lb-logd diff --git a/org.glite.lb.server/Makefile b/org.glite.lb.server/Makefile index 41f402f..ba9fdf8 100644 --- a/org.glite.lb.server/Makefile +++ b/org.glite.lb.server/Makefile @@ -27,14 +27,14 @@ default: all version=${module.version} SOURCES=\ - config/glite-lb* config/my.cnf config/*.conf config/startup config/setup config/systemd.* \ + config/glite-lb* config/my.cnf config/*.conf config/startup config/startup.* config/setup config/systemd.* \ doc/*.1 doc/*.8 \ interface/*.h \ src/*.c src/*.cpp src/*.h src/*.c.T src/*.l src/*.y src/*.sh src/*.sh.in src/ws_typemap.dat \ project/.post* project/.pre* \ test/*.cpp test/*.cpp.T test/*.sh test/oneJob.qry test/*.c \ Makefile -SOURCES_EXEC=config/glite-lb-migrate* config/startup config/setup src/*.sh test/*.sh +SOURCES_EXEC=config/glite-lb-migrate* config/startup config/startup.* config/setup src/*.sh test/*.sh all: compile diff --git a/org.glite.lb.server/config/glite-lb b/org.glite.lb.server/config/glite-lb index 4c28bc6..7629158 100644 --- a/org.glite.lb.server/config/glite-lb +++ b/org.glite.lb.server/config/glite-lb @@ -82,10 +82,23 @@ GLITE_LB_RTM_DN='/C=UK/O=eScience/OU=Imperial/L=Physics/CN=heppc24.hep.ph.ic.ac. # # bkserver additional options -#GLITE_LB_SERVER_OTHER_OPTIONS='--greyjobs --html-header @glite_etc@/glite-lb/html-header.html --gridmap-file @glite_etc@/glite-lb/gridmap' +#GLITE_LB_SERVER_OPTIONS='--greyjobs --html-header @glite_etc@/glite-lb/html-header.html --gridmap-file @glite_etc@/glite-lb/gridmap' +# locallogger additional options +#GLITE_LB_LOGD_OPTIONS= +# interlogger additional options +#GLITE_LB_IL_OPTIONS= # notification interlogger additional options -#GLITE_LB_NOTIF_IL_OTHER_OPTIONS= +#GLITE_LB_NOTIF_IL_OPTIONS= # proxy interlogger additional options -#GLITE_LB_PROXY_IL_OTHER_OPTIONS= +#GLITE_LB_PROXY_IL_OPTIONS= # harvester additional options -#GLITE_LB_HARVESTER_OTHER_OPTIONS= +#GLITE_LB_HARVESTER_OPTIONS= + +@debian@# +@debian@# change to 'yes' to enable the individual deamons +@debian@# +@debian@RUN_SERVER=no +@debian@RUN_IL=no +@debian@RUN_PROXY_IL=no +@debian@RUN_NOTIF_IL=no +@debian@RUN_LOGD=no diff --git a/org.glite.lb.server/config/setup b/org.glite.lb.server/config/setup index 1c72cf6..4f1517a 100755 --- a/org.glite.lb.server/config/setup +++ b/org.glite.lb.server/config/setup @@ -6,6 +6,7 @@ GLITE_LOCATION=${GLITE_LOCATION:-'@glite_prefix@'} GLITE_LOCATION_ETC=${GLITE_LOCATION_ETC:-'@glite_etc@'} GLITE_USER=${GLITE_USER:-'glite'} +GLITE_GROUP=${GLITE_GROUP:-'glite'} MYSQL_USER=${MYSQL_USER:-'root'} #MYSQL_PASSWORD= GLITE_LB_MSG_BROKER=${GLITE_LB_MSG_BROKER:-'true'} @@ -757,6 +758,8 @@ if test "$setup_startup" = "1"; then fi fi if test "$setup_startup" = "1" -a "$startup_error" != "1"; then + [ -d $GLITE_HOME/dump ] || mkdir $GLITE_HOME/dump && chown $GLITE_USER:$GLITE_GROUP $GLITE_HOME/dump + [ -d $GLITE_HOME/purge ] || mkdir $GLITE_HOME/purge && chown $GLITE_USER:$GLITE_GROUP $GLITE_HOME/purge @fedora@ case "$GLITE_LB_TYPE" in @fedora@ proxy) @fedora@ GLITE_LB_SERVER_PROXY_OPTIONS="-P " @@ -814,28 +817,43 @@ if test "$setup_startup" = "1" -a "$startup_error" != "1"; then @fedora@ else @fedora@ systemctl stop glite-lb-harvester.service >/dev/null 2>&1 @fedora@ fi -@debian@ update-rc.d glite-lb-bkserverd defaults -@debian@ update-rc.d glite-lb-locallogger defaults -@debian@ update-rc.d glite-lb-harvester defaults -@debian@ update-rc.d glite-lb-bkserverd enable -@debian@ update-rc.d glite-lb-locallogger enable +@debian@ run_proxy=no +@debian@ run_harvester=no +@debian@ if test x"$GLITE_LB_TYPE" = x"proxy" -o x"$GLITE_LB_TYPE" = x"both"; then +@debian@ run_proxy=yes +@debian@ fi @debian@ if test x"$GLITE_LB_HARVESTER_ENABLED" = x"true"; then -@debian@ update-rc.d glite-lb-harvester enable -@debian@ else -@debian@ update-rc.d glite-lb-harvester disable +@debian@ run_harvester=yes @debian@ fi +@debian@ grep -v ^RUN_ @defaultdir@/glite-lb > /tmp/glite-lb +@debian@ cat <> /tmp/glite-lb +@debian@RUN_SERVER=yes +@debian@RUN_IL=yes +@debian@RUN_PROXY_IL=$run_proxy +@debian@RUN_NOTIF_IL=yes +@debian@RUN_LOGD=yes +@debian@RUN_HARVESTER=$run_harvester +@debian@EOF +@debian@ mv /tmp/glite-lb @defaultdir@/glite-lb @debian@ @debian@ startup_error=0 -@debian@ $GLITE_LOCATION_ETC/init.d/glite-lb-bkserverd restart || startup_error=1 -@debian@ $GLITE_LOCATION_ETC/init.d/glite-lb-locallogger restart || startup_error=1 -@debian@ if test x"$GLITE_LB_HARVESTER_ENABLED" = x"true"; then -@debian@ $GLITE_LOCATION_ETC/init.d/glite-lb-harvester restart || startup_error=1 -@debian@ else -@debian@ $GLITE_LOCATION_ETC/init.d/glite-lb-harvester stop >/dev/null 2>&1 -@debian@ fi +@debian@ update-rc.d glite-lb-locallogger defaults >/dev/null 2>&1 || : +@debian@ update-rc.d glite-lb-locallogger disable >/dev/null 2>&1 || : +@debian@ for i in bkserverd logd interlogd notif-interlogd proxy-interlogd harvester; do +@debian@ update-rc.d glite-lb-$i defaults +@debian@ update-rc.d glite-lb-$i enable +@debian@ $GLITE_LOCATION_ETC/init.d/glite-lb-$i restart || startup_error=1 +@debian@ done @redhat@ /sbin/chkconfig mysqld on @redhat@ /sbin/chkconfig glite-lb-bkserverd on -@redhat@ /sbin/chkconfig glite-lb-locallogger on +@redhat@ /sbin/chkconfig glite-lb-logd on +@redhat@ /sbin/chkconfig glite-lb-interlogd on +@redhat@ /sbin/chkconfig glite-lb-notif-interlogd on +@redhat@ if test x"$GLITE_LB_TYPE" = x"proxy" -o x"$GLITE_LB_TYPE" = x"both"; then +@redhat@ /sbin/chkconfig glite-lb-proxy-interlogd on +@redhat@ else +@redhat@ /sbin/chkconfig glite-lb-proxy-interlogd off +@redhat@ fi @redhat@ if test x"$GLITE_LB_HARVETER_ENABLED" = x"true"; then @redhat@ /sbin/chkconfig glite-lb-harvester on @redhat@ else @@ -843,12 +861,17 @@ if test "$setup_startup" = "1" -a "$startup_error" != "1"; then @redhat@ fi @redhat@ @redhat@ startup_error=0 -@redhat@ /sbin/service glite-lb-bkserverd restart || startup_error=1 -@redhat@ /sbin/service glite-lb-locallogger restart || startup_error=1 +@redhat@ for i in bkserverd logd interlogd notif-interlogd; do +@redhat@ /sbin/service glite-lb-$i stop >/dev/null 2>&1 || : +@redhat@ /sbin/service glite-lb-$i start || startup_error=1 +@redhat@ done +@redhat@ /sbin/service glite-lb-proxy-interlogd stop >/dev/null 2>&1 || : +@redhat@ if test x"$GLITE_LB_TYPE" = x"proxy" -o x"$GLITE_LB_TYPE" = x"both"; then +@redhat@ /sbin/service glite-lb-proxy-interlogd start || startup_error=1 +@redhat@ fi +@redhat@ /sbin/service glite-lb-proxy-harvester stop >/dev/null 2>&1 || : @redhat@ if test x"$GLITE_LB_HARVESTER_ENABLED" = x"true"; then -@redhat@ /sbin/service glite-lb-harvester restart || startup_error=1 -@redhat@ else -@redhat@ /sbin/service glite-lb-harvester stop >/dev/null 2>&1 +@redhat@ /sbin/service glite-lb-harvester start || startup_error=1 @redhat@ fi if test "$startup_error" = "0"; then diff --git a/org.glite.lb.server/config/startup.debian.bkserverd b/org.glite.lb.server/config/startup.debian.bkserverd new file mode 100755 index 0000000..7b4f4ca --- /dev/null +++ b/org.glite.lb.server/config/startup.debian.bkserverd @@ -0,0 +1,140 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: glite-lb-bkserverd +# Required-Start: $remote_fs $network $syslog mysql +# Required-Stop: $remote_fs $network $syslog mysql +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: gLite Logging and Bookkeeping server +# Description: Primary purpose of gLite L&B server is tracking jobs as +# they are processed by individual grid components. +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC="L&B server" +NAME=glite-lb-bkserverd +DAEMON=/usr/bin/$NAME +PIDFILE=/var/run/glite/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +RUN_SERVER=yes + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -x "$DAEMON" ] || exit 0 + +[ -r /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -r /etc/glite.conf ] && . /etc/glite.conf +[ -r /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -r /etc/default/glite-lb ] && . /etc/default/glite-lb +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +if [ "x$RUN_SERVER" != "xyes" ]; then + echo "$DESC disabled." + echo "For automatic configuration, please run glite-lb-setup script." + echo "When configuring L&B manually, please also set RUN_SERVER to 'yes' in" + echo "/etc/default/glite-lb." + exit 0 +fi + +do_start() +{ + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + args="--dump-prefix=$GLITE_HOME/dump --purge-prefix=$GLITE_HOME/purge" + [ -f /etc/glite-lb/glite-lb-authz.conf ] && args="$args --policy /etc/glite-lb/glite-lb-authz.conf" + case "$GLITE_LB_TYPE" in + proxy) + args="$args -P" + ;; + both) + args="$args -B" + ;; + *) + ;; + esac + rm -f /tmp/lb_proxy_serve.sock /tmp/lb_proxy_store.sock + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --chuid $GLITE_USER --exec /usr/bin/env $env $DAEMON -- \ + $args $GLITE_LB_SERVER_OPTIONS \ + || return 2 +} + +do_stop() +{ + start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + start-stop-daemon --stop --quiet --oknodo --retry=0/10/KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/org.glite.lb.server/config/startup.redhat.bkserverd b/org.glite.lb.server/config/startup.redhat.bkserverd new file mode 100755 index 0000000..03a76a4 --- /dev/null +++ b/org.glite.lb.server/config/startup.redhat.bkserverd @@ -0,0 +1,115 @@ +#!/bin/bash +# +# /etc/rc.d/init.d/glite-lb-bkserverd +# +# gLite Logging and Bookkeeping server +# +# chkconfig: - 75 25 +# description: Primary purpose of gLite L&B server is tracking jobs as \ +# they are processed by individual grid components. +# processname: glite-lb-bkserverd +# pidfile: /var/run/glite/glite-lb-bkserverd.pid + +### BEGIN INIT INFO +# Provides: glite-lb-bkserverd +# Required-Start: $remote_fs $network $syslog mysqld +# Required-Stop: $remote_fs $network $syslog mysqld +# Short-Description: gLite Logging and Bookkeeping server +# Description: Primary purpose of gLite L&B server is tracking jobs as +# they are processed by individual grid components. +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +prog=glite-lb-bkserverd +exec=/usr/bin/$prog +lockfile=/var/lock/subsys/$prog + +GLITE_USER='glite' +GLITE_HOME=`getent passwd ${GLITE_USER} | cut -d: -f6` +GLITE_HOST_CERT="$GLITE_HOME/.certs/hostcert.pem" +GLITE_HOST_KEY="$GLITE_HOME/.certs/hostkey.pem" +KRB5_KTNAME="FILE:$GLITE_HOME/krb5kt_lb" +KRB5CCNAME="FILE:$GLITE_HOME/krb5cc_lb" +LOG4C_RCPATH="/etc/glite-lb" + +[ -f /etc/profile.d/grid-env.sh ] && . /etc/profile.d/grid-env.sh +[ -f /etc/glite.conf ] && . /etc/glite.conf +[ -f /etc/glite-wms.conf ] && . /etc/glite-wms.conf +[ -f /etc/sysconfig/glite-lb ] && . /etc/sysconfig/glite-lb +[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +start() { + [ -x $exec ] || exit 5 + + [ -n "$LOG4C_RCPATH" ] && env="$env LOG4C_RCPATH='$LOG4C_RCPATH'" + [ -n "$KRB5_KTNAME" ] && env="$env KRB5_KTNAME='$KRB5_KTNAME'" + [ -n "$KRB5CCNAME" ] && env="$env KRB5CCNAME='$KRB5CCNAME'" + [ -n "$GLITE_GSS_MECH" ] && env="$env GLITE_GSS_MECH='$GLITE_GSS_MECH'" + + if [ -n "$GLITE_HOST_CERT" -a -n "$GLITE_HOST_KEY" ]; then + env="$env X509_USER_CERT=$GLITE_HOST_CERT X509_USER_KEY=$GLITE_HOST_KEY" + creds=1 + else + echo "$0: WARNING: No credentials specified." >&2 + fi + + args="--dump-prefix=$GLITE_HOME/dump --purge-prefix=$GLITE_HOME/purge" + [ -f /etc/glite-lb/glite-lb-authz.conf ] && args="$args --policy /etc/glite-lb/glite-lb-authz.conf" + case "$GLITE_LB_TYPE" in + proxy) + args="$args -P" + ;; + both) + args="$args -B" + ;; + *) + ;; + esac + rm -f /tmp/lb_proxy_serve.sock /tmp/lb_proxy_store.sock + + echo -n "Starting $prog: " + daemon --user $GLITE_USER $env $exec $args $GLITE_LB_SERVER_OPTIONS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n "Shutting down $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +case "$1" in + start) + status $prog >/dev/null 2>&1 && exit 0 + start + ;; + stop) + status $prog >/dev/null 2>&1 || exit 0 + stop + ;; + status) + status $prog + ;; + restart|reload|force-reload) + stop + start + ;; + condrestart|try-restart) + status $prog >/dev/null 2>&1 || exit 0 + stop + start + ;; + *) + echo "Usage: {start|stop|status|reload|restart|condrestart|try-restart|force-reload}" + exit 2 + ;; +esac +exit $? diff --git a/org.glite.lb.server/project/debian.control b/org.glite.lb.server/project/debian.control index cbba1a4..cb85962 100644 --- a/org.glite.lb.server/project/debian.control +++ b/org.glite.lb.server/project/debian.control @@ -2,7 +2,7 @@ Source: glite-lb-server Priority: extra Maintainer: @MAINTAINER@ Uploaders: @UPLOADERS@ -Build-Depends: debhelper (>= 7.0.50~), bison, chrpath, flex, glite-lb-types, glite-lb-ws-interface, gsoap, libc-ares-dev, libclassad0-dev | libclassad-dev, libcppunit-dev, libexpat1-dev, libglite-jobid-api-c-dev, libglite-lb-common-dev, libglite-lb-state-machine-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-gsoap-plugin-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-maildir-dev, libglite-lbjp-common-server-bones-dev, libglite-lbjp-common-trio-dev, libgridsite-dev, libtool, libxml2-dev, pkg-config, voms-dev +Build-Depends: debhelper (>= 7.0.50~), bison, chrpath, flex, glite-lb-types, glite-lb-ws-interface, gsoap, libc-ares-dev, libclassad0-dev | libclassad-dev, libcppunit-dev, libexpat1-dev, libglite-jobid-api-c-dev, libglite-lb-common-dev, libglite-lb-state-machine-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-gsoap-plugin-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-maildir-dev, libglite-lbjp-common-server-bones-dev, libglite-lbjp-common-trio-dev, libgridsite-dev, libtool, libxml2-dev, lsb-base (>= 3.2-14), pkg-config, voms-dev # gssapi is needed explicitly for glite-lb-server, but the proper package is # known only in libglite-lbjp-common-gss-dev: # - gssapi from Globus (libglobus-gssapi-gsi-dev) diff --git a/org.glite.lb.server/project/debian.glite-lb-server.install b/org.glite.lb.server/project/debian.glite-lb-server.install index e4e8016..1e5b534 100644 --- a/org.glite.lb.server/project/debian.glite-lb-server.install +++ b/org.glite.lb.server/project/debian.glite-lb-server.install @@ -1,7 +1,6 @@ etc/cron.d/* etc/default/* etc/glite-lb/* -etc/init.d/* etc/logrotate.d/* etc/mysql/conf.d/* usr/bin/* diff --git a/org.glite.lb.server/project/debian.rules b/org.glite.lb.server/project/debian.rules index dae9154..5d2844e 100644 --- a/org.glite.lb.server/project/debian.rules +++ b/org.glite.lb.server/project/debian.rules @@ -28,7 +28,7 @@ build-stamp: configure-stamp clean: configure-stamp dh_testdir dh_testroot - rm -f configure-stamp build-stamp + rm -f configure-stamp build-stamp debian/glite-lb-bkserverd.init $(MAKE) clean rm -f Makefile.inc config.status *.spec dh_clean @@ -46,6 +46,8 @@ install: build-stamp mv debian/tmp/usr/share/doc/glite-lb-server-@MAJOR@.@MINOR@.@REVISION@ debian/$(p_base)/usr/share/doc/$(p_base) mkdir -p debian/$(p_dbg)/usr/share/doc ln -s $(p_base) debian/$(p_dbg)/usr/share/doc/$(p_dbg) + rm debian/tmp/etc/init.d/glite-lb-bkserverd + cp -p config/startup.debian.bkserverd debian/glite-lb-bkserverd.init binary-indep: @@ -57,7 +59,7 @@ binary-arch: install dh_installexamples dh_installman dh_installlogrotate - dh_installinit --onlyscripts --no-start + dh_installinit --name=glite-lb-bkserverd dh_installcron dh_install --fail-missing dh_link diff --git a/org.glite.lb.server/project/glite-lb-server.spec b/org.glite.lb.server/project/glite-lb-server.spec index 848439b..19a657d 100644 --- a/org.glite.lb.server/project/glite-lb-server.spec +++ b/org.glite.lb.server/project/glite-lb-server.spec @@ -86,9 +86,9 @@ cat > ${RPM_BUILD_ROOT}%{_prefix}/lib/tmpfiles.d/glite-lb-server.conf </dev/null; then - update-rc.d glite-lb-bkserverd disable - update-rc.d glite-lb-locallogger disable - update-rc.d glite-lb-harvester disable + for i in bkserverd harvester locallogger logd interlogd notif-interlogd proxy-interlogd; do + update-rc.d glite-lb-$i disable >/dev/null 2>&1 + done else - /sbin/chkconfig glite-lb-bkserverd off - /sbin/chkconfig glite-lb-locallogger off - /sbin/chkconfig glite-lb-harvester off + for i in bkserverd harvester locallogger logd interlogd notif-interlogd proxy-interlogd; do + /sbin/chkconfig glite-lb-$i off >/dev/null 2>&1 + done fi grep -v 'glite-lb-' @glite_etc@/gLiteservices 2>/dev/null > /tmp/gLiteservices mv /tmp/gLiteservices @glite_etc@/gLiteservices echo "${GLITE_LOCATION_ETC}/init.d/glite-lb-bkserverd" >> @glite_etc@/gLiteservices - echo "${GLITE_LOCATION_ETC}/init.d/glite-lb-locallogger" >> @glite_etc@/gLiteservices + echo "${GLITE_LOCATION_ETC}/init.d/glite-lb-logd" >> @glite_etc@/gLiteservices + echo "${GLITE_LOCATION_ETC}/init.d/glite-lb-interlogd" >> @glite_etc@/gLiteservices + echo "${GLITE_LOCATION_ETC}/init.d/glite-lb-notif-interlogd" >> @glite_etc@/gLiteservices + if [ x"$GLITE_LB_TYPE" = x"proxy" -o x"$GLITE_LB_TYPE" = x"both" ]; then + echo "${GLITE_LOCATION_ETC}/init.d/glite-lb-proxy-interlogd" >> @glite_etc@/gLiteservices + fi if [ x"$GLITE_LB_RTM_ENABLED" = x"true" ]; then echo "${GLITE_LOCATION_ETC}/init.d/glite-lb-harvester" >> @glite_etc@/gLiteservices fi