pg_ctl -w start does not know that it has started postmaster - Mailing list pgsql-bugs

From Aaron Hillegass
Subject pg_ctl -w start does not know that it has started postmaster
Date
Msg-id 96F494B8-3B29-11D9-B925-000A95A0A0F0@bignerdranch.com
Whole thread Raw
Responses Re: pg_ctl -w start does not know that it has started postmaster
List pgsql-bugs
Your name        :    Aaron Hillegass
Your email address    :      aaron@bignerdranch.com


System Configuration
---------------------
   Architecture (example: Intel Pentium)      : PPC

   Operating System (example: Linux 2.4.18) :  Mac OS X 10.3.5

   PostgreSQL version (example: PostgreSQL-8.0):   PostgreSQL-8.0b4

   Compiler used (example:  gcc 2.95.2)        :  gcc version 3.3 20030304
(Apple Computer, Inc. build 1666)


Please enter a FULL description of your problem:
------------------------------------------------

I have a script that must start the postmaster before continuing, so I
do this:

 > sudo -u postgres /Library/PostgreSQL/bin/pg_ctl -w start

But this always fails:

 > sudo -u postgres /Library/PostgreSQL/bin/pg_ctl -w start
waiting for postmaster to
start...............................................................coul
d not start postmaster

But the postmaster is actually started:

 > /Library/PostgreSQL/bin/psql -Unopali template1
Welcome to psql 8.0.0beta4, the PostgreSQL interactive terminal.

template1=#

Please describe a way to repeat the problem.   Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

Note that the process's user name (postgres) is different from the
database's owner (nopali).


If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

I suspect that the problem is that when I did initdb,  I used 'nopali'
as the username, but pg_ctl is being run as 'postgres'.  Because there
is no database user called 'postgres', I think that this line in
pg_ctl.c always fails:

        if ((conn = PQsetdbLogin(NULL, portstr, NULL, NULL,

"template1", NULL, NULL)) != NULL &&
                         (PQstatus(conn) == CONNECTION_OK ||
                          (strcmp(PQerrorMessage(conn),
                                          PQnoPasswordSupplied) == 0)))

pgsql-bugs by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: Data corruption/loss when altering tables (fwd)
Next
From: "John Hansen"
Date:
Subject: Psql history