Thread: BUG #4435: pg_ctl start doesn't detach when run via SSH
The following bug has been logged online: Bug reference: 4435 Logged by: Hal Black Email address: black@ieee.org PostgreSQL version: 8.3.3 Operating system: Ubuntu Hardy 8.04.1 LTS Description: pg_ctl start doesn't detach when run via SSH Details: When I run "pg_ctl start" via SSH, the database service starts, but it never returns control to the shell. If I run the same command from an interactive shell, it works as expected. This is with or without the -w option. Here's an example commandline. ssh root@example.com "su -c '/home/appuser/local/bin/pg_ctl start -w -s -D /home/appuser/postgresql_data' postgres" This problem exists both when installed from source and when using the postgresql installed via the debian package manager (of course using a different path to the pg_ctl binary)
Hal Black wrote: > The following bug has been logged online: > > Bug reference: 4435 > Logged by: Hal Black > Email address: black@ieee.org > PostgreSQL version: 8.3.3 > Operating system: Ubuntu Hardy 8.04.1 LTS > Description: pg_ctl start doesn't detach when run via SSH > Details: > > When I run "pg_ctl start" via SSH, the database service starts, but it never > returns control to the shell. If I run the same command from an interactive > shell, it works as expected. > > This is with or without the -w option. Here's an example commandline. > > ssh root@example.com "su -c '/home/appuser/local/bin/pg_ctl start -w -s -D > /home/appuser/postgresql_data' postgres" > > This problem exists both when installed from source and when using the > postgresql installed via the debian package manager (of course using a > different path to the pg_ctl binary) > try using ssh -t ...
That works, but interestingly, I still get a SIGHUP reload sometimes: LOG: received SIGHUP, reloading configuration files On Tue, Sep 23, 2008 at 1:54 PM, Steve Clark <sclark@netwolves.com> wrote: > Hal Black wrote: > >> The following bug has been logged online: >> >> Bug reference: 4435 >> Logged by: Hal Black >> Email address: black@ieee.org >> PostgreSQL version: 8.3.3 >> Operating system: Ubuntu Hardy 8.04.1 LTS >> Description: pg_ctl start doesn't detach when run via SSH >> Details: >> When I run "pg_ctl start" via SSH, the database service starts, but it >> never >> returns control to the shell. If I run the same command from an >> interactive >> shell, it works as expected. >> >> This is with or without the -w option. Here's an example commandline. >> >> ssh root@example.com "su -c '/home/appuser/local/bin/pg_ctl start -w -s >> -D >> /home/appuser/postgresql_data' postgres" >> >> This problem exists both when installed from source and when using the >> postgresql installed via the debian package manager (of course using a >> different path to the pg_ctl binary) >> >> try using ssh -t ... > >
Steve Clark <sclark@netwolves.com> writes: > Hal Black wrote: >> When I run "pg_ctl start" via SSH, the database service starts, but it never >> returns control to the shell. If I run the same command from an interactive >> shell, it works as expected. >> >> This is with or without the -w option. Here's an example commandline. >> >> ssh root@example.com "su -c '/home/appuser/local/bin/pg_ctl start -w -s -D >> /home/appuser/postgresql_data' postgres" > try using ssh -t ... Actually I suspect the main problem is having failed to redirect the postmaster's stdout/stderr away from the terminal. Consider using pg_ctl's "-l logfile" option. Another point is that su's -l option might be a good idea. I'm unconvinced that you're setting up a desirable environment for the postmaster here --- it's going to be mostly root's environment. regards, tom lane