#!/bin/sh # # The following lines are ones you may wish to customize; # alternatively, you may set SLON_BUILD and SLON_CONF in your # environment to override the values in this script. SLON_BIN_PATH=${SLON_BUILD:-"/home/chris/dbs/postgresql-8.3.3/bin"} SLON_CONF=${SLON_CONF:-"${HOME}/test/slon-conf.1"} SLON_LOG=${SLON_LOG:-"${HOME}/test/slon.1.log"} # If you use syslog, then this may use /dev/null # shouldn't need to edit anything below this test -x "$SLON_BIN_PATH/slon" || (echo "missing slon - ${SLON_BIN_PATH}/slon"; exit 1) test -r "$SLON_CONF" || (echo "No slon conf file - $SLON_CONF"; exit 1) PID_LINE=`grep pid_file $SLON_CONF | cut -d "#" -f 1 | grep "^[[:space:]]*pid_file='.*'"` PID_FILE=`echo $PID_LINE | cut -d "=" -f 2 | cut -d "'" -f 2` if [ "x$PID_FILE" == "x" ]; then echo "pid_file not found in slon conf file - $SLON_CONF" exit 1 else if [ -f $PID_FILE ]; then PID=`cat $PID_FILE` FINDPID=`ps -p ${PID} | awk '{print $1}' | grep "^$PID\$"` fi fi case "$1" in start) if [ ! -z "$FINDPID" ]; then echo "**** slon already running - PID $PID ****" exit 1 fi touch $SLON_LOG test -w "$SLON_LOG" || (echo "**** SLON_LOG not writable - $SLON_LOG ****"; exit 1) echo "Starting slon: $SLON_BIN_PATH/slon -f ${SLON_CONF} 1>> ${SLON_LOG} 2>&1 &" $SLON_BIN_PATH/slon -f ${SLON_CONF} 1>> ${SLON_LOG} 2>&1 & ;; stop) echo "Stopping slon" if [ ! -z "$FINDPID" ]; then kill -15 ${PID} echo "Killed slon at PID ${PID}" else echo "**** slon with PID ${PID} not found ****" fi ;; status) echo "SLON_CONF:${SLON_CONF}" echo "SLON_BIN_PATH:${SLON_BIN_PATH}" if [ -f $PID_FILE ]; then if [ ! -z "$FINDPID" ]; then echo "**** Slon running as PID:$PID ****" else echo "**** Slon not running - PID:$PID - ${FINDPID} ****" fi else echo "**** Slon not running - no PID file ${PID_FILE} ****" fi ;; *) echo "Usage: $0 [start|stop|status]" ;; esac