patroni/debian/patches/startup_scripts.patch
Michael Banck 9bebf50f35 * debian/patches/startup_scripts.patch: Add RuntimeDirectory option, set to
create the instance temporary statistics direcotry %v-%c.pg_stat_tmp.
2018-11-10 17:38:31 +01:00

119 lines
3.5 KiB
Diff

Index: patroni/extras/startup-scripts/patroni
===================================================================
--- patroni.orig/extras/startup-scripts/patroni
+++ patroni/extras/startup-scripts/patroni
@@ -18,7 +18,7 @@ USER="postgres"
GROUP="postgres"
NAME=patroni
-PATRONI="/opt/patroni/$NAME.py"
+PATRONI="/usr/bin/$NAME"
PIDFILE="/var/run/$NAME.pid"
# Set this parameter, if you have several Postgres versions installed
@@ -114,6 +114,12 @@ case "$1" in
kill -HUP $CHILDPID
;;
+ force-reload)
+ log_success_msg "Rorce-reloading Patroni configuration"
+ get_pid
+ kill -HUP $CHILDPID
+ ;;
+
status)
get_pid
if start-stop-daemon -T --pid $CHILDPID; then
@@ -130,7 +136,7 @@ case "$1" in
;;
*)
- echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|status}"
+ echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload|status}"
exit 1
;;
esac
Index: patroni/extras/startup-scripts/patroni.service
===================================================================
--- patroni.orig/extras/startup-scripts/patroni.service
+++ patroni/extras/startup-scripts/patroni.service
@@ -1,9 +1,7 @@
-# This is an example systemd config file for Patroni
-# You can copy it to "/etc/systemd/system/patroni.service",
-
[Unit]
Description=Runners to orchestrate a high-availability PostgreSQL
-After=syslog.target network.target
+After=network.target
+ConditionPathExists=/etc/patroni/config.yml
[Service]
Type=simple
@@ -16,17 +14,13 @@ EnvironmentFile=-/etc/patroni_env.conf
WorkingDirectory=~
-# Where to send early-startup messages from the server
-# This is normally controlled by the global default set by systemd
-#StandardOutput=syslog
-
# Pre-commands to start watchdog device
# Uncomment if watchdog is part of your patroni setup
#ExecStartPre=-/usr/bin/sudo /sbin/modprobe softdog
#ExecStartPre=-/usr/bin/sudo /bin/chown postgres /dev/watchdog
# Start the patroni process
-ExecStart=/bin/patroni /etc/patroni.yml
+ExecStart=/usr/bin/patroni /etc/patroni/config.yml
# Send HUP to reload from patroni.yml
ExecReload=/bin/kill -s HUP $MAINPID
Index: patroni/extras/startup-scripts/patroni@.service
===================================================================
--- /dev/null
+++ patroni/extras/startup-scripts/patroni@.service
@@ -0,0 +1,43 @@
+# systemd service template for patroni instances. The actual instances will
+# be called "patroni@version-cluster", e.g. "patroni@10-main". The
+# variable %i expands to "version-cluster", %I expands to "version/cluster".
+# (%I breaks for cluster names containing dashes.)
+[Unit]
+Description=Patroni instance %i
+After=network.target
+ConditionPathExists=/etc/patroni/%i.yml
+
+[Service]
+Type=simple
+
+User=postgres
+Group=postgres
+
+# Read in configuration file if it exists, otherwise proceed
+EnvironmentFile=-/etc/patroni_env.conf
+
+PermissionsStartOnly=True
+WorkingDirectory=~
+RuntimeDirectory=postgresql/%i.pg_stat_tmp
+RuntimeDirectoryMode=2775
+
+ExecStart=/usr/bin/patroni /etc/patroni/%i.yml
+
+# Send HUP to reload from patroni.yml
+ExecReload=/bin/kill -s HUP $MAINPID
+
+# only kill the patroni process, not it's children, so it will gracefully stop postgres
+KillMode=process
+
+# Give a reasonable amount of time for the server to start up/shut down
+TimeoutSec=30
+
+# Do not restart the service if it crashes, we want to manually inspect database on failure
+Restart=no
+
+# Uncomment in order to get debugging output
+#Environment=PATRONI_LOGLEVEL=DEBUG
+
+[Install]
+WantedBy=multi-user.target
+