Thread: pg_ctl won't start postgres, but postmaster will?!

pg_ctl won't start postgres, but postmaster will?!

From
Steve Santacroce
Date:
I have had a lot of problems trying to install the postgres on a second
FreeBSD box. I installed it using the ports install, so that part of the
process went painlessly. however, when I tried to run the .sh script file
that was installed, I get nothing. The script's commands are:

    chmod 600 ${logfile}
    chown pgsql:pgsql ${logfile}
    [ -x ${PGBIN}/pg_ctl ] && {
        su -l pgsql -c \
            "[ -d \${PGDATA} ] && exec ${PREFIX}/bin/pg_ctl start -s -w -l
${logfile}"
        echo -n ' pgsql'

No errors, no messages, nothing. Then I tried to start pg_ctl by hand. I
su'd to pgsql, and typed:

/usr/local/bin/pg_ctl -D /pgdata -l /var/log/pgsql

and nothing, postmaster still doesn't start! If I type:

su -l pgsql -c exec "/usr/local/bin/postmaster -D /pgdata"

I get a "postmaster started successfully" reply, BUT postmaster STILL isn't
running.

The only way I can get postmaster to run is to first su into pgsql, then
type:

/usr/local/bin/postmaster -D /pgdata

Then it starts up fine! None of this makes any sense to me at all. On a side
note, even when postmaster is running, webmin says that postgres isn't
running, even tho I told it where the database is. Just one more thing
that's messed up. Any ideas as to why this isn't working?


Re: pg_ctl won't start postgres, but postmaster will?!

From
Tom Lane
Date:
Steve Santacroce <steves@csh.rit.edu> writes:
> /usr/local/bin/pg_ctl -D /pgdata -l /var/log/pgsql
> and nothing, postmaster still doesn't start!

You forgot the "start" keyword.  I'm surprised pg_ctl fails to complain...

            regards, tom lane

Re: pg_ctl won't start postgres, but postmaster will?!

From
Peter Eisentraut
Date:
Steve Santacroce writes:

>     chmod 600 ${logfile}
>     chown pgsql:pgsql ${logfile}
>     [ -x ${PGBIN}/pg_ctl ] && {
>         su -l pgsql -c \
>             "[ -d \${PGDATA} ] && exec ${PREFIX}/bin/pg_ctl start -s -w -l
> ${logfile}"
>         echo -n ' pgsql'
>
> No errors, no messages, nothing. Then I tried to start pg_ctl by hand. I
> su'd to pgsql, and typed:
>
> /usr/local/bin/pg_ctl -D /pgdata -l /var/log/pgsql

This command is invalid.  You need to add "start" somewhere.

> and nothing, postmaster still doesn't start! If I type:
>
> su -l pgsql -c exec "/usr/local/bin/postmaster -D /pgdata"
>
> I get a "postmaster started successfully" reply, BUT postmaster STILL isn't
> running.

The message "postmaster started successfully" comes from pg_ctl.  That
would mean pg_ctl is still running by the time you type this.

Please check that what you are writing here corresponds exactly to what
you are typing on the console.

--
Peter Eisentraut   peter_e@gmx.net


Re: pg_ctl won't start postgres, but postmaster will?!

From
Steve Santacroce
Date:
> >     chmod 600 ${logfile}
> >     chown pgsql:pgsql ${logfile}
> >     [ -x ${PGBIN}/pg_ctl ] && {
> >         su -l pgsql -c \
> >             "[ -d \${PGDATA} ] && exec ${PREFIX}/bin/pg_ctl
start -s -w -l
> > ${logfile}"
> >         echo -n ' pgsql'
> >
> > No errors, no messages, nothing. Then I tried to start pg_ctl by hand. I
> > su'd to pgsql, and typed:
> >
> > /usr/local/bin/pg_ctl -D /pgdata -l /var/log/pgsql
>
> This command is invalid.  You need to add "start" somewhere.
>
Sorry, forgot to write that. It was in the line. The wierd thing is that I
can type:
/usr/local/bin/pg_ctl -D /pgdata -l /var/log/pgsql start

and it will start, but if I use:

su -l pgsql -c exec "/usr/local/bin/pg_ctl -D /pgdata -l /var/log/pgsql
start"

it doesn't work! And I'm still confused as to why the script doesn't work.

> The message "postmaster started successfully" comes from pg_ctl.  That
> would mean pg_ctl is still running by the time you type this.
>
> Please check that what you are writing here corresponds exactly to what
> you are typing on the console.
>

Sorry about that. I should have just copied and pasted. Thanks for pointing
out my error!


Re: pg_ctl won't start postgres, but postmaster will?!

From
Yuji Shinozaki
Date:
On Mon, 25 Aug 2003, Steve Santacroce wrote:

> Sorry, forgot to write that. It was in the line. The wierd thing is that I
> can type:
> /usr/local/bin/pg_ctl -D /pgdata -l /var/log/pgsql start
>
> and it will start, but if I use:
>
> su -l pgsql -c exec "/usr/local/bin/pg_ctl -D /pgdata -l /var/log/pgsql
> start"
>
> it doesn't work! And I'm still confused as to why the script doesn't work.

Terse answer: Do not use quotes in your exec statement.

yuji
----
Yuji Shinozaki                            Computer Systems Senior Engineer
ys2n@virginia.edu            Advanced Technologies Group
(434)924-7171                Information Technology & Communication
http://www.people.virginia.edu/~ys2n    University of Virginia