On Thu, 1 Jul 2004, Tom Lane wrote:
> <ghaverla@freenet.edmonton.ab.ca> writes:
> > I'm running Debian unstable, and I keep getting a message from a
> > cron job that wants to do.maintenance about no password being
> > supplied.
>
> > Now, I gather in the past a person had to explicitly put a
> > password in the cron job, but we are now supposed to use a file
> > called ~/.pgpass (~ being /var/lib/postgres).
>
> That is the recommended solution, but I'll bet that the cron job is not
> running with the same value of $HOME that you think it is, and so it is
> failing to find the file. You might want to explicitly set $HOME in the
> script.
Well, neither the cron script nor /etc/postgresql/postgresql.env
(which is sourced by the cron script) explicitly set $HOME. But
the message from cron indicates that home is /var/lib/postgres
and the user is postgres when the script runs.
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/var/lib/postgres>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=postgres>
> Also, test the .pgpass file by manually running psql with it; if there
> is something wrong with the file contents you'll be able to prove it...
Well, if I 'su - postgres' from root, and then run
'psql template1' everything works fine. I suppose I could edit
the .pgpass to contain a bad password, and see if psql fails. If
I put a bad password in .pgpass, the attempt to try psql fails.
So, psql is using .pgpass.
Gord