|
@@ -1,14 +1,39 @@
|
|
|
[Unit]
|
|
|
Description=PostgreSQL database server
|
|
|
+After=network.target
|
|
|
|
|
|
[Service]
|
|
|
-Type=notify
|
|
|
+Type=forking
|
|
|
+
|
|
|
User=postgres
|
|
|
-ExecStart=/usr/local/pgsql/bin/postgres -D /data/pgsql
|
|
|
-ExecReload=/bin/kill -HUP $MAINPID
|
|
|
-KillMode=mixed
|
|
|
-KillSignal=SIGINT
|
|
|
-TimeoutSec=0
|
|
|
+Group=postgres
|
|
|
+
|
|
|
+# Where to send early-startup messages from the server (before the logging
|
|
|
+# options of postgresql.conf take effect)
|
|
|
+# This is normally controlled by the global default set by systemd
|
|
|
+# StandardOutput=syslog
|
|
|
+
|
|
|
+# Disable OOM kill on the postmaster
|
|
|
+OOMScoreAdjust=-1000
|
|
|
+# ... but allow it still to be effective for child processes
|
|
|
+# (note that these settings are ignored by Postgres releases before 9.5)
|
|
|
+Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
|
|
|
+Environment=PG_OOM_ADJUST_VALUE=0
|
|
|
+
|
|
|
+# Maximum number of seconds pg_ctl will wait for postgres to start. Note that
|
|
|
+# PGSTARTTIMEOUT should be less than TimeoutSec value.
|
|
|
+Environment=PGSTARTTIMEOUT=270
|
|
|
+
|
|
|
+Environment=PGDATA=/data/pgsql
|
|
|
+
|
|
|
+ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -w -t ${PGSTARTTIMEOUT}
|
|
|
+ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
|
|
|
+ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -s
|
|
|
+
|
|
|
+# Give a reasonable amount of time for the server to start up/shut down.
|
|
|
+# Ideally, the timeout for starting PostgreSQL server should be handled more
|
|
|
+# nicely by pg_ctl in ExecStart, so keep its timeout smaller than this value.
|
|
|
+TimeoutSec=300
|
|
|
|
|
|
[Install]
|
|
|
WantedBy=multi-user.target
|