diff options
-rw-r--r-- | src/backend/postmaster/bgwriter.c | 4 | ||||
-rw-r--r-- | src/backend/postmaster/checkpointer.c | 4 | ||||
-rw-r--r-- | src/backend/postmaster/pgarch.c | 5 | ||||
-rw-r--r-- | src/backend/postmaster/pgstat.c | 5 | ||||
-rw-r--r-- | src/backend/postmaster/postmaster.c | 9 | ||||
-rw-r--r-- | src/backend/postmaster/startup.c | 4 | ||||
-rw-r--r-- | src/backend/postmaster/syslogger.c | 4 | ||||
-rw-r--r-- | src/backend/postmaster/walwriter.c | 4 | ||||
-rw-r--r-- | src/backend/replication/walreceiver.c | 4 | ||||
-rw-r--r-- | src/backend/replication/walsender.c | 4 |
10 files changed, 11 insertions, 36 deletions
diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c index b1e9bb2c537..54a042843da 100644 --- a/src/backend/postmaster/bgwriter.c +++ b/src/backend/postmaster/bgwriter.c @@ -133,10 +133,6 @@ BackgroundWriterMain(void) * Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); /* We allow SIGQUIT (quickdie) at all times */ sigdelset(&BlockSig, SIGQUIT); diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c index 1a033093c53..9eac86b554b 100644 --- a/src/backend/postmaster/checkpointer.c +++ b/src/backend/postmaster/checkpointer.c @@ -218,10 +218,6 @@ CheckpointerMain(void) * Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); /* We allow SIGQUIT (quickdie) at all times */ sigdelset(&BlockSig, SIGQUIT); diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c index 885e85ad8af..0ebd63650c6 100644 --- a/src/backend/postmaster/pgarch.c +++ b/src/backend/postmaster/pgarch.c @@ -226,11 +226,8 @@ PgArchiverMain(int argc, char *argv[]) pqsignal(SIGPIPE, SIG_IGN); pqsignal(SIGUSR1, pgarch_waken); pqsignal(SIGUSR2, pgarch_waken_stop); + /* Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); PG_SETMASK(&UnBlockSig); /* diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 42bccce0af4..790d7f02af1 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -4267,11 +4267,8 @@ PgstatCollectorMain(int argc, char *argv[]) pqsignal(SIGPIPE, SIG_IGN); pqsignal(SIGUSR1, SIG_IGN); pqsignal(SIGUSR2, SIG_IGN); + /* Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); PG_SETMASK(&UnBlockSig); /* diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index cb49f3255f9..68bb35ab791 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -646,8 +646,17 @@ PostmasterMain(int argc, char *argv[]) pqsignal_no_restart(SIGUSR2, dummy_handler); /* unused, reserve for * children */ pqsignal_no_restart(SIGCHLD, reaper); /* handle child termination */ + + /* + * No other place in Postgres should touch SIGTTIN/SIGTTOU handling. We + * ignore those signals in a postmaster environment, so that there is no + * risk of a child process freezing up due to writing to stderr. But for + * a standalone backend, their default handling is reasonable. Hence, all + * child processes should just allow the inherited settings to stand. + */ pqsignal(SIGTTIN, SIG_IGN); /* ignored */ pqsignal(SIGTTOU, SIG_IGN); /* ignored */ + /* ignore SIGXFSZ, so that ulimit violations work like disk full */ #ifdef SIGXFSZ pqsignal(SIGXFSZ, SIG_IGN); /* ignored */ diff --git a/src/backend/postmaster/startup.c b/src/backend/postmaster/startup.c index 2926211e35d..983a05d7db5 100644 --- a/src/backend/postmaster/startup.c +++ b/src/backend/postmaster/startup.c @@ -188,10 +188,6 @@ StartupProcessMain(void) * Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); /* * Register timeouts needed for standby mode diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c index 29bdcec8958..35755138890 100644 --- a/src/backend/postmaster/syslogger.c +++ b/src/backend/postmaster/syslogger.c @@ -257,10 +257,6 @@ SysLoggerMain(int argc, char *argv[]) * Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); PG_SETMASK(&UnBlockSig); diff --git a/src/backend/postmaster/walwriter.c b/src/backend/postmaster/walwriter.c index fb66bceeedf..3e09827854d 100644 --- a/src/backend/postmaster/walwriter.c +++ b/src/backend/postmaster/walwriter.c @@ -121,10 +121,6 @@ WalWriterMain(void) * Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); /* We allow SIGQUIT (quickdie) at all times */ sigdelset(&BlockSig, SIGQUIT); diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index 6f4b3538ac4..cb7bb47c9bd 100644 --- a/src/backend/replication/walreceiver.c +++ b/src/backend/replication/walreceiver.c @@ -279,10 +279,6 @@ WalReceiverMain(void) /* Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); /* We allow SIGQUIT (quickdie) at all times */ sigdelset(&BlockSig, SIGQUIT); diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index 39337d2f1f8..3f24f9b4e05 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -3003,10 +3003,6 @@ WalSndSignals(void) /* Reset some signals that are accepted by postmaster but not here */ pqsignal(SIGCHLD, SIG_DFL); - pqsignal(SIGTTIN, SIG_DFL); - pqsignal(SIGTTOU, SIG_DFL); - pqsignal(SIGCONT, SIG_DFL); - pqsignal(SIGWINCH, SIG_DFL); } /* Report shared-memory space needed by WalSndShmemInit */ |