If we want one in the repo I'm happy to dump the one I use (based on
previous ones I've seen on the list) see attached.
It does more than just start/stop script since I use it to manage the
reporter, sip, z39.50 and autogen. It's a big mash up and any
cleanup/improvements would be appreciated.
Remember to make sure to set apache in rc*.d to run after the evergreen
script and to shutdown before the evergreen init script. I used
update-rc.d to add/change the start order.
Dan Scott wrote:
> On Fri, 2010-04-30 at 11:16 +0200, Luca Iacono wrote:
>> Hello Evergreen community
>>
>> Before embarking on writing a startup script for Evergreen, I wanted to
>> ask you whether it's a feaseable task. Since I didn't find one, I
>> thought I'd better ask.
>
> There have been some efforts towards this end in the past
> (http://markmail.org/search/?q=evergreen+init+script) that you might be
> able to build on, rather than having to start from scratch. So far
> nothing has made its way into the Evergreen repository (even
> the /examples directory), for whatever reason, but there's always
> hope :)
>
>
--
- - - - - - - - - - - - - - - - - - - - - - - - -
Anoop Atre
IS Developer & Integrator, MnPALS
PH: 507.389.5060
OF: 3022 Memorial Library (Office-ML 3022)
--
"Freiheit ist immer Freiheit der Andersdenkenden"
~ Rosa Luxemburg
"Mit der Dummheit kämpfen Götter selbst vergebens"
~ Johann Christoph Friedrich von Schiller
#!/bin/bash
OPENILS_BASE="/openils"
OPENILS_CORE="${OPENILS_BASE}/conf/opensrf_core.xml"
SRU_LOG="${OPENILS_BASE}/var/log/sru.log"
SIP_PID="${OPENILS_BASE}/var/run"
SIP_CONF="${OPENILS_BASE}/conf/oils_sip.xml"
REP_LOCK="${OPENILS_BASE}/var/lock/reporter-LOCK"
REP_NAME="Clark Kent, waiting for trouble"
sru_name='simple2zoom'
if [ $(whoami) != 'opensrf' ]; then
PERL5LIB='/openils/lib/perl5:$PERL5LIB';
fi;
start() {
echo "Starting Evergreen"
sudo -u opensrf /bin/bash -c
"PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin osrf_ctl.sh -l -a start_all"
}
stop() {
echo "Stopping Evergreen"
sudo -u opensrf /bin/bash -c
"PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin osrf_ctl.sh -l -a stop_all"
}
autogen() {
echo "Running Autogen Update"
sudo -u opensrf /bin/bash -c
"PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin autogen.sh -u -c ${OPENILS_CORE}"
}
sip_start() {
sudo -u opensrf /bin/bash -c
"PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin oils_ctl.sh \
-d ${SIP_PID} \
-s ${SIP_CONF} \
-a start_sip"
}
sip_stop() {
sudo -u opensrf /bin/bash -c
"PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin oils_ctl.sh \
-d ${SIP_PID} \
-s ${SIP_CONF} \
-a stop_sip"
}
sip_restart() {
sudo -u opensrf /bin/bash -c
"PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin oils_ctl.sh \
-d ${SIP_PID} \
-s ${SIP_CONF} \
-a restart_sip"
}
start_rep() {
pids="$(pidof "$REP_NAME")"
if [ ! x"$pids" = x ] ; then
echo FAILURE ; echo $"Starting Reporting: already running as $pids"
return 1
fi
rm -f $REP_LOCK
sudo -u opensrf bash -c "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin clark-kent.pl \
--lockfile=${REP_LOCK} --boostrap=${OPENILS_CORE} --concurrency=1 --sleep=30
--daemon" ;
pids="$(pidof "$REP_NAME")"
if [ x"$pids" = x ] ; then
echo FAILURE
else
echo OK
fi
echo "Starting Reporting: $pids"
return $RETVAL
}
stop_rep() {
pids="$(pidof "$REP_NAME")"
if [ x"$pids" = x ] ; then
echo FAILURE ; echo $"Stopping Reporting: not running" ; RETVAL=1
else
kill $pids ; RETVAL=$?
if [ $RETVAL ] ; then
echo OK ; echo $"Stopping Reporting: $pids"
else
echo FAILURE
fi
fi
rm -f $REP_LOCK
return $RETVAL
}
z39_50_start() {
pids=`ps -eo pid,args | grep $sru_name | grep -v grep | cut -c1-6`
if [ ! x"$pids" = x ] ; then
echo FAILURE ; echo $"Starting Z39.50/SRU: already running as $pids"
return 1
fi
sudo -u opensrf bash -c "touch ${SRU_LOG}"
sudo bash -c "PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin z39_50.sh >> ${SRU_LOG} 2>&1" &
sleep 1
pids=`ps -eo pid,args | grep $sru_name | grep -v grep | cut -c1-6`
if [ x"$pids" = x ] ; then
echo FAILURE
else
echo OK
fi
echo "Starting Z39.50/SRU: $pids"
return $RETVAL
}
z39_50_stop() {
pids=`ps -eo pid,args | grep $sru_name | grep -v grep | cut -c1-6`
if [ x"$pids" = x ] ; then
echo FAILURE ; echo $"Stopping Z39.50/SRU: not running" ; RETVAL=1
else
kill $pids ; RETVAL=$?
if [ $RETVAL ] ; then
echo OK ; echo $"Stopping Z39.50/SRU: $pids"
else
echo FAILURE
fi
fi
return $RETVAL
}
case "$1" in
start)
start
start_rep
z39_50_start
sip_start
;;
stop)
sip_stop
z39_50_stop
stop_rep
stop
;;
restart)
echo "Restarting Evergreen, Reporter and Z39.50 Processes"
sip_stop
z39_50_stop
stop_rep
stop
start
start_rep
z39_50_start
sip_start
;;
autogen)
autogen
;;
sip_start)
sip_start
;;
sip_stop)
sip_stop
;;
sip_restart)
sip_restart
;;
start_reporter)
start_rep
;;
stop_reporter)
stop_rep
;;
restart_reporter)
stop_rep
start_rep
;;
z39_50_start)
z39_50_start
;;
z39_50_stop)
z39_50_stop
;;
z39_50_restart)
z39_50_stop
z39_50_start
;;
start_router|stop_router|restart_router|start_perl|stop_perl|restart_perl| \
start_c|stop_c|restart_c|start_osrf|stop_osrf|restart_osrf|stop_all|start_all|restart_all)
sudo -u opensrf /bin/bash -c
"PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
PATH=${PATH}:${OPENILS_BASE}/bin osrf_ctl.sh -l -a $1"
;;
*)
echo " * Usage: /etc/init.d/evergreen {start|stop|restart|autogen"
echo " |sip_start|sip_stop|sip_restart"
echo "
|z39_50_start|z39_50_stop|z39_50_restart"
echo "
|start_reporter|stop_reporter|restart_reporter"
echo "
|start_router|stop_router|restart_router|start_perl|stop_perl|restart_perl"
echo "
|start_c|stop_c|restart_c|start_osrf|stop_osrf|restart_osrf|stop_all|start_all|restart_all}"
exit 1
;;
esac;