diff --git a/postgresql/tasks/config.yml b/postgresql/tasks/config.yml index 4ce33245..dc3fc1b1 100644 --- a/postgresql/tasks/config.yml +++ b/postgresql/tasks/config.yml @@ -1,4 +1,13 @@ --- +- name: Override PostgreSQL systemd unit + template: + src: postgresql.service.j2 + dest: /etc/systemd/system/multi-user.target.wants/postgresql.service + force: yes + notify: + - reload systemd + - restart postgresql + - name: Allow conf.d/*.conf files to be included in PostgreSQL configuration lineinfile: name: "/etc/postgresql/{{postgresql_version}}/main/postgresql.conf" diff --git a/postgresql/templates/postgresql.service.j2 b/postgresql/templates/postgresql.service.j2 new file mode 100644 index 00000000..b5bd2730 --- /dev/null +++ b/postgresql/templates/postgresql.service.j2 @@ -0,0 +1,19 @@ +# systemd service for managing all PostgreSQL clusters on the system. This +# service is actually a systemd target, but we are using a service since +# targets cannot be reloaded. + +[Unit] +Description=PostgreSQL RDBMS + +[Service] +OOMScoreAdjust=-1000 +Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj +Environment=PG_MASTER_OOM_SCORE_ADJ=-1000 +Environment=PG_CHILD_OOM_SCORE_ADJ=0 +Type=oneshot +ExecStart=/bin/true +ExecReload=/bin/true +RemainAfterExit=on + +[Install] +WantedBy=multi-user.target