Обсуждение: Detaching from controlling terminal
We are using PostgreSQL about two years beginning from version 7.0. I have one question about starting postmaster: Is there way to detach it from the controlling terminal under FreeBSD? My situation: I start postmaster manually: su pgsql -c "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start" Log: [1] LOG: database system was shut down at 2003-11-18 08:28:48 MSK [2] LOG: checkpoint record is at 2/781889D0 [3] LOG: redo record is at 2/781889D0; undo record is at 0/0; shutdown TRUE [4] LOG: next transaction id: 45635; next oid: 32885093 [5] LOG: database system is ready and I see: 9655 p1 S+ 0:00,01 /usr/local/pgsql/bin/postmaster (postgres) 9657 p1 S+ 0:00,00 postmaster: stats buffer process (postgres) 9658 p1 S+ 0:00,00 postmaster: stats collector process (postgres) It is attached to console p1. So when I press Ctrl+C in this console postmaster writes and exits: Log: [1] LOG: fast shutdown request [2] LOG: shutting down [3] LOG: database system is shut down When I reload server postmaster starts without any controlling terminal and I can press Ctrl+C in any console I want: 178 con- I+ 0:00,16 /usr/local/pgsql/bin/postmaster (postgres) 180 con- I+ 0:00,00 postmaster: stats buffer process (postgres) 181 con- I+ 0:00,00 postmaster: stats collector process (postgres) So I repeat my question: Is there way to detach it from the controlling terminal under FreeBSD? -- Best regards Andrey Feofilactovich.
Andrey Mosienko writes: > We are using PostgreSQL about two years beginning from version 7.0. > I have one question about starting postmaster: > Is there way to detach it from the controlling terminal under FreeBSD? > > My situation: I start postmaster manually: > > su pgsql -c "/usr/local/pgsql/bin/pg_ctl > -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start" That should do it. What version are you using? -- Peter Eisentraut peter_e@gmx.net
Peter Eisentraut wrote: > > Andrey Mosienko writes: > > > We are using PostgreSQL about two years beginning from version 7.0. > > I have one question about starting postmaster: > > Is there way to detach it from the controlling terminal under FreeBSD? > > > > My situation: I start postmaster manually: > > > > su pgsql -c "/usr/local/pgsql/bin/pg_ctl > > -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start" > > That should do it. What version are you using? PostgreSQL: 7.0.1 - 7.3.4 FreeBSD: 4.2 - 4.9 -- Best regards Andrey Feofilactovich.
Andrey Mosienko writes: > > > su pgsql -c "/usr/local/pgsql/bin/pg_ctl > > > -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start" > > > > That should do it. What version are you using? > > PostgreSQL: 7.0.1 - 7.3.4 I'm sure somewhere in between there it didn't work and then it was fixed. If in doubt, redirect all three file descriptors stdin, stdout, stderr somewhere (possibly /dev/null), so they're not attached to the terminal. -- Peter Eisentraut peter_e@gmx.net
Andrey Mosienko wrote: > We are using PostgreSQL about two years beginning from version 7.0. > I have one question about starting postmaster: > Is there way to detach it from the controlling terminal under FreeBSD? > > My situation: I start postmaster manually: > > su pgsql -c "/usr/local/pgsql/bin/pg_ctl > -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start" You can either use pg_ctl or nohup. Using pg_ctl is recommended. Shridhar
Shridhar Daithankar wrote:
>
> Andrey Mosienko wrote:
>
> > We are using PostgreSQL about two years beginning from version 7.0.
> > I have one question about starting postmaster:
> > Is there way to detach it from the controlling terminal under FreeBSD?
> >
> > My situation: I start postmaster manually:
> >
> > su pgsql -c "/usr/local/pgsql/bin/pg_ctl
> > -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start"
>
> You can either use pg_ctl or nohup. Using pg_ctl is recommended.
>
su pgsql -c "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start"
^^^^^^^
What is nohup?
--
Best regards Andrey Feofilactovich.
On Tue, 18 Nov 2003, Andrey Mosienko wrote: > What is nohup? > [craig@crucw craig]$ man -k nohup nohup (1) - run a command immune to hangups, with output to a non-tty
Andrey Mosienko wrote: > Shridhar Daithankar wrote: > >>Andrey Mosienko wrote: >> >> >>>We are using PostgreSQL about two years beginning from version 7.0. >>>I have one question about starting postmaster: >>> Is there way to detach it from the controlling terminal under FreeBSD? >>> >>>My situation: I start postmaster manually: >>> >>>su pgsql -c "/usr/local/pgsql/bin/pg_ctl >>>-D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start" >> >>You can either use pg_ctl or nohup. Using pg_ctl is recommended. >> > > > su pgsql -c "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start" > ^^^^^^^ Damn.. Sorry I missed that. Usually pg_ctl detaches from terminal. > What is nohup? When you start a job with nohup and put it in background, the job keeps running even if terminal detaches. When a terminal closes, a sighup is delivered to all applications started from that terminal. Nohup just ignores it. man nohup for more details. Shridhar
On Tue, 2003-11-18 at 17:52, Shridhar Daithankar wrote:
> Andrey Mosienko wrote:
>
> > Shridhar Daithankar wrote:
> >
> >>Andrey Mosienko wrote:
> >>
> >>
> >>>We are using PostgreSQL about two years beginning from version 7.0.
> >>>I have one question about starting postmaster:
> >>> Is there way to detach it from the controlling terminal under FreeBSD?
> >>>
> >>>My situation: I start postmaster manually:
> >>>
> >>>su pgsql -c "/usr/local/pgsql/bin/pg_ctl
> >>>-D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start"
> >>
> >>You can either use pg_ctl or nohup. Using pg_ctl is recommended.
> >>
> >
> >
> > su pgsql -c "/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/log/pgsql.log start"
> > ^^^^^^^
>
> Damn.. Sorry I missed that. Usually pg_ctl detaches from terminal.
> > What is nohup?
>
> When you start a job with nohup and put it in background, the job keeps running
> even if terminal detaches.
>
> When a terminal closes, a sighup is delivered to all applications started from
> that terminal. Nohup just ignores it.
>
> man nohup for more details.
>
> Shridhar
Be aware that nohup lowers the priority of the process by default - this
can be undesirable for a server...
Stephen