From: | Barry Schatz <barry(dot)schatz(at)gmail(dot)com> |
---|---|
To: | pgadmin-support(at)postgresql(dot)org |
Subject: | pgAgent and pgpass |
Date: | 2010-04-26 16:56:21 |
Message-ID: | y2wc96428941004260956k9b3808e9jd1cf5cadee6fd911@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgadmin-support |
First post here, hello all.
I've run into a vexing problem where pgagent log reports:
DEBUG: Creating primary connection
DEBUG: Creating DB connection: hostaddr=xx.xx.xxx.xxx port=6543
dbname=postgres user=postgres
WARNING: Couldn't create connection: fe_sendauth: no password supplied
DEBUG: Clearing all connections
DEBUG: Connection stats: total - 1, free - 0, deleted - 1
This is occurring on a Debian Lenny box. I did not have this problem on a
Gentoo box, but I was a little surprised that the Debian install of pgAgent
does not provide an init script for pgAgent. I Googled extensively and
couldn't find one, so I took the skeleton example from /etc/init.d and
adapted from the Gentoo init script for pgAgent to produce this:
#! /bin/sh
### BEGIN INIT INFO
# Provides: pgagent
# Required-Start: $local_fs $remote_fs $network $time
# Required-Stop: $local_fs $remote_fs $network $time
# Should-Start: $postgresql-8.4
# Should-Stop: $postgresql-8.4
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: job scheduler for PostgreSQL
### END INIT INFO
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="job scheduler for PostgreSQL"
NAME=pgagent
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-l 2 -s /var/log/postgresql/pgagent.log hostaddr=xx.xx.xxx.xxxx
port=6543 dbname=postgres user=postgres"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
PGUSER=postgres
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --chuid $PGUSER --pidfile $PIDFILE
--exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --chuid $PGUSER --pidfile $PIDFILE
--exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
# Add code here, if necessary, that waits for the process to be
ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
}
# TRUNCATED HERE
Note the "--chuid $PGUSER" option. This works, as "ps aux |grep pgagent"
shows pgagent running under the postgres user. The .pgpass file is located
correctly in the postgres user home directory /var/lib/postgresql YET when
pgagent runs it does not read the .pgpass file in its own user directory as
it does with the Gentoo init script.
This is my first init script on Debian but not my first bash script and I
cannot work out why the .pgpass file is not being read.
All suggestions are gratefully welcome!
From | Date | Subject | |
---|---|---|---|
Next Message | Quan Zongliang | 2010-04-27 13:35:26 | revoke select right on pg_proc |
Previous Message | Fernando Hevia | 2010-04-26 13:10:57 | Re: database restore problem |