Skip to content

Instantly share code, notes, and snippets.

@stompro
Created February 8, 2019 17:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stompro/d0a12c26e8cecd1c287f100dadfa591f to your computer and use it in GitHub Desktop.
Save stompro/d0a12c26e8cecd1c287f100dadfa591f to your computer and use it in GitHub Desktop.
cat /etc/init.d/evergreen - Evergreen startup scripts
#!/bin/bash
### BEGIN INIT INFO
# Provides: evergreen
# Required-Start: $remote_fs $syslog ejabberd
# Should-Start: postgresql memcached apache2
# Required-Stop: $remote_fs $syslog
# Should-Stop: apache2 memcached postgresql
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Evergreen ILS
# Description: Enable services that provide the Evergreen ILS System.
### END INIT INFO
. /lib/lsb/init-functions
test -r /etc/default/evergreen && . /etc/default/evergreen
OPENSRF_USER="opensrf"
OPENILS_BASE="/openils"
OPENILS_CORE="${OPENILS_BASE}/conf/opensrf_core.xml"
PATH=${PATH}:${OPENILS_BASE}/bin
ENV_PATH=$PATH
PERL5LIB=${PERL5LIB}:${OPENILS_BASE}/lib/perl5
OSRF_CONTROL="${OPENILS_BASE}/bin/opensrf-perl.pl"
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;
if [ $OPENSRF_HOST == "localhost" ]; then
OPENSRF_HOST="--$OPENSRF_HOST"
else
OPENSRF_HOST=""
fi
start() {
if [[ $START_OSRF =~ ^[yY] ]]; then
echo "Starting Evergreen"
su -p -c "PATH=$PATH ${OSRF_CONTROL} $OPENSRF_HOST --start-all" $OPENSRF_USER
fi
}
stop() {
if [[ $START_OSRF =~ ^[yY] ]]; then
echo "Stopping Evergreen"
su -p -c "${OSRF_CONTROL} $OPENSRF_HOST --stop-all" $OPENSRF_USER
fi
}
apache_restart() {
if [ -e /etc/init.d/apache2 ]; then
echo "Restarting Apache"
/etc/init.d/apache2 restart
fi
if [ -e /etc/init.d/apache2-websockets ]; then
echo "Restarting Apache Websockets Instance"
/etc/init.d/apache2-websockets restart
fi
}
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() {
if [[ $SIP =~ ^[yY] ]]; then
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"
fi
}
sip_stop() {
if [[ $SIP =~ ^[yY] ]]; then
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"
fi
}
sip_restart() {
if [[ $SIP =~ ^[yY] ]]; then
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"
fi
}
start_rep() {
if [[ $REPORTER =~ ^[yY] ]]; then
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
fi
}
stop_rep() {
if [[ $REPORTER =~ ^[yY] ]] ; then
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
fi
}
z39_50_start() {
if [[ $Z39_50 =~ ^[yY] ]]; then
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
fi
}
z39_50_stop() {
if [[ $Z39_50 =~ ^[yY] ]]; then
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
fi
}
#edi_start() {
# if [[ $EDI =~ ^[yY] ]]; then
#
#
#
# fi
#
#}
#check to see if a service is up, delay if it is not up
# Fail startup if it never comes up.
checkservice() {
HOST=$1
PORT=$2
DELAY=$3
#while ! timeout 2 bash -c "cat < /dev/null > /dev/tcp/$HOST/$PORT"
#do
#done
#return 0
}
case "$1" in
start)
start
start_rep
z39_50_start
sip_start
apache_restart
;;
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
apache_restart
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;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment