#!/bin/bash # # Startup script for ninac # # chkconfig: - 85 15 # description: ninac # processname: ninac # pidfile: /var/run/ninac.pid # config: /etc/loader-files.conf # Source function library. unset LANG . /etc/rc.d/init.d/functions NINACSH=/usr/bin/ninacsh NINAC_RULES=/var/lib/ninac/regles.so NINAC_TASKS=/var/lib/ninac/tasks NINAC_JOURNAL=/var/log/ninac/journal.log NINAC_ARGS="-g -r -f $NINAC_RULES -j $NINAC_JOURNAL" INITLOG_ARGS="" if [ -f /etc/sysconfig/ninac ]; then . /etc/sysconfig/ninac fi ninac=${NINAC:-/usr/sbin/ninac} prog=ninac RETVAL=0 start() { local mode=$1 mode=${mode#*-} echo -n $"Starting $prog: " cd / daemon $ninac $NINAC_ARGS RETVAL=$? echo if [ $RETVAL = 0 ] ;then touch /var/lock/subsys/$prog { [ "$mode" = 'no-journal' ] || load_journal load_config } | $NINACSH -l fi return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc $ninac -TERM RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog /var/run/$prog.pid } load_journal() { if [ -f "$NINAC_JOURNAL" ] ; then echo "Loading journal $NINAC_JOURNAL" >&2 mv $NINAC_JOURNAL -f $NINAC_JOURNAL.old # Le checkpoint force la fermeture du journal # et la re-ouverture. echo checkpoint if ! ninac_load_journal $NINAC_JOURNAL.old ; then # We save the journal in order to be able to recuperate it manually save="$NINAC_JOURNAL.load_error.$(date +%s)" echo "Error loading journal: saving journal as $save" >&2 cp -a $NINAC_JOURNAL.old $save fi fi } # These scripts must spew the ninac config to stdout. load_config(){ for script in /etc/sysconfig/ninac.d/* ; do if [ -f "$script" -a -x "$script" ] ; then echo "Running post-start script $script" >&2 $script fi done } # See how we were called. case "$1" in start|start-no-journal) start $1 ;; stop) # Should we use ninaccmd quit? stop ;; status) status $ninac RETVAL=$? ;; restart|restart-no-journal) stop start $1 ;; reload) # Here we basically clear all tasks, and reload the config. Since we don't clear the vars, # we don't need to reload the journal. { echo cleartasks load_config } | $NINACSH -l ;; *) echo $"Usage: $prog {start|start-no-journal|stop|restart|restart-no-journal|reload|status}" exit 1 esac exit $RETVAL