Обсуждение: 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