diff options
Diffstat (limited to 'contrib/start-scripts')
-rw-r--r-- | contrib/start-scripts/linux | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/contrib/start-scripts/linux b/contrib/start-scripts/linux index b950cf512c3..bab8b0efc67 100644 --- a/contrib/start-scripts/linux +++ b/contrib/start-scripts/linux @@ -43,14 +43,17 @@ PGLOG="$PGDATA/serverlog" # It's often a good idea to protect the postmaster from being killed by the # OOM killer (which will tend to preferentially kill the postmaster because # of the way it accounts for shared memory). Setting the OOM_SCORE_ADJ value -# to -1000 will disable OOM kill altogether. If you enable this, you probably -# want to compile PostgreSQL with "-DLINUX_OOM_SCORE_ADJ=0", so that -# individual backends can still be killed by the OOM killer. +# to -1000 will disable OOM kill altogether, which is a good thing for the +# postmaster, but not so much for individual backends. If you enable this, +# also uncomment the DAEMON_ENV line, which will instruct backends to set +# their OOM adjustments back to the default setting of zero. #OOM_SCORE_ADJ=-1000 +#DAEMON_ENV="PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj" # Older Linux kernels may not have /proc/self/oom_score_adj, but instead # /proc/self/oom_adj, which works similarly except the disable value is -17. -# For such a system, enable this and compile with "-DLINUX_OOM_ADJ=0". +# For such a system, uncomment these two lines instead. #OOM_ADJ=-17 +#DAEMON_ENV="PG_OOM_ADJUST_FILE=/proc/self/oom_adj" ## STOP EDITING HERE @@ -84,7 +87,7 @@ case $1 in echo -n "Starting PostgreSQL: " test x"$OOM_SCORE_ADJ" != x && echo "$OOM_SCORE_ADJ" > /proc/self/oom_score_adj test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj - su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 + su - $PGUSER -c "$DAEMON_ENV $DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; stop) @@ -97,7 +100,7 @@ case $1 in su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" test x"$OOM_SCORE_ADJ" != x && echo "$OOM_SCORE_ADJ" > /proc/self/oom_score_adj test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj - su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 + su - $PGUSER -c "$DAEMON_ENV $DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; reload) |