Hi,
I have updated the pg_autovacuum script with some bug fixes and changes. Hope you find this useful.
-- This goes where all the other init scripts are located.
-- Can be placed at the top of /etc/rc.d/init.d/postgresql script or in the /etc/sysconfig/pgsql/{name of script} e.g. postgresql, pg1, pg2
# Initialize pg_autovacuum defaults. Theo Galanakis 11/04/2005
PGAUTO_LOGFILE=/var/log/pg_autovacuum.{$PGPORT}.log
PGAUTO_SLEEP=600
--Include at the top of /etc/rc.d/init.d/postgresql
# pg_autovaccum Include script file. Theo Galanakis 11/04/2005
. $INITD/autovacuum
--Update case statement in postgresql script
case "$1" in
start)
start
startautovacuum
;;
stop)
stop
stopautovacuum
;;
status)
status postmaster
statusautovacuum
;;
restart)
restart
restartautovacuum
;;
--Create a new file /etc/rc.d/init.d/autovacuum with this content.
startautovacuum() {
# Start pg_autovacuum. Theo Galanakis 11/05/2005
# Note : ensure $PGENGINE is being used in script otherwise hardcode to /usr/bin/
if [ -f /var/run/pg_autovacuum.${PGPORT}.pid ]
then
echo $"pg_autovacuum already running."
else
PAUTO_START=$"Starting pg_autovacuum service: "
echo -n "$PAUTO_START"
pg_autovacuum -D -s ${PGAUTO_SLEEP} -p ${PGPORT} -U postgres -L ${PGAUTO_LOGFILE}
sleep 1
pg_autovacuum_pid=`pidof -s $PGENGINE/pg_autovacuum`
if [ $pg_autovacuum_pid ]
then
success "$PAUTO_START"
echo $pg_autovacuum_pid > /var/run/pg_autovacuum.${PGPORT}.pid
echo
else
failure "$PAUTO_START"
echo
fi
fi
}
stopautovacuum () {
# Stop pg_autovaccum. Theo Galanakis 11/04/2005
if [ -f /var/run/pg_autovacuum.${PGPORT}.pid ]
then
pg_autovacuum_pid=`head -n 1 /var/run/pg_autovacuum.${PGPORT}.pid`
ret=`ps --no-heading ${pg_autovacuum_pid}`
if [ -z "$ret" ]
then
echo $"pg_autovacuum: pid [${pg_autovacuum_pid}] stored in /var/run/pg_autovacuum.${PGPORT}.pid does not exist."
else
echo -n $"Stopping pg_autovacuum service: "
kill -TERM $pg_autovacuum_pid
ret=`ps --no-heading ${pg_autovacuum_pid}`
if [ -z "$ret" ]
then
echo_success
else
echo_failure
fi
echo
rm -f /var/run/pg_autovacuum.${PGPORT}.pid
fi
else
echo $"pg_autovacuum is not running."
fi
}
statusautovacuum() {
# Status pg_autovacuum. Theo Galanakis 11/04/2005
if [ -f /var/run/pg_autovacuum.${PGPORT}.pid ]
then
pg_autovacuum_pid=`head -n 1 /var/run/pg_autovacuum.${PGPORT}.pid`
ret=`ps --no-heading ${pg_autovacuum_pid}`
if [ -z "$ret" ]
then
echo $"pg_autovacuum not running..."
else
echo $"pg_autovacuum (pid ${pg_autovacuum_pid}) is running..."
fi
else
status pg_autovacuum
fi
}
restartautovacuum() {
stopautovacuum
startautovacuum
}
______________________________________________________________________ This email, including attachments, is intended only for the addressee and may be confidential, privileged and subject to copyright. If you have received this email in error, please advise the sender and delete it. If you are not the intended recipient of this email, you must not use, copy or disclose its content to anyone. You must not copy or communicate to others content that is confidential or subject to copyright, unless you have the consent of the content owner. |