From 7b58b4a3ed20b7adeac22f5dea61e042f37d18b4 Mon Sep 17 00:00:00 2001 From: James Campbell Date: Sat, 11 Jan 2025 01:18:03 -0500 Subject: [PATCH] Make systemd user configurable and create log directory --- DEBIAN/postinst | 7 +++++++ Makefile | 8 ++++---- RPM/pgmon.spec | 5 +++++ {gentoo/files => openrc}/pgmon.openrc | 0 sample-config/pgmon-service.conf | 2 ++ systemd/pgmon@.service | 2 ++ 6 files changed, 20 insertions(+), 4 deletions(-) create mode 100755 DEBIAN/postinst rename {gentoo/files => openrc}/pgmon.openrc (100%) create mode 100644 sample-config/pgmon-service.conf diff --git a/DEBIAN/postinst b/DEBIAN/postinst new file mode 100755 index 0000000..4d79f4f --- /dev/null +++ b/DEBIAN/postinst @@ -0,0 +1,7 @@ +#!/bin/sh +set -e + +# Create the log directory +install -d -m 0755 -o root -g root /var/log/pgmon + +exit 0 diff --git a/Makefile b/Makefile index e6b2b0d..bc3c03f 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ deb: docker run --rm \ -v .:/src:ro \ -v ./$(BUILD_DIR)/deb:/output \ - --user $(shell id -u):$(shell i -g) \ + --user $(shell id -u):$(shell id -g) \ $(DEB_IMAGE) rpm: @@ -33,7 +33,7 @@ rpm: docker run --rm \ -v .:/src:ro \ -v ./$(BUILD_DIR)/rpm:/output \ - --user $(shell id -u):$(shell i -g) \ + --user $(shell id -u):$(shell id -g) \ $(RPM_IMAGE) tgz: @@ -61,7 +61,7 @@ install: # Install manpage cp manpages/* $(DESTDIR)/usr/share/man/man1/ - gzip -9 $(DESTDIR)/usr/share/man/man1/$(PACKAGE_NAME).1 + gzip -f -9 $(DESTDIR)/usr/share/man/man1/$(PACKAGE_NAME).1 # Install sample config cp sample-config/* $(DESTDIR)/etc/$(PACKAGE_NAME)/ @@ -103,7 +103,7 @@ ubuntu-install-test: # Debian package creation logic package-deb: $(MAKE) install DESTDIR=/output - cp -r DEBIAN /output/ + cp -r --preserve=mode DEBIAN /output/ dpkg-deb -Zgzip --build /output /output/$(PACKAGE_NAME)_$(VERSION).deb # RPM package creation logic diff --git a/RPM/pgmon.spec b/RPM/pgmon.spec index 6a4da7a..c612499 100644 --- a/RPM/pgmon.spec +++ b/RPM/pgmon.spec @@ -26,9 +26,14 @@ make -C /src install DESTDIR=%{buildroot} /usr/share/man/man1/pgmon.1.gz /etc/pgmon/pgmon.yml /etc/pgmon/pgmon-metrics.yml +/etc/pgmon/pgmon-service.conf /lib/systemd/system/pgmon.service /lib/systemd/system/pgmon@.service +%post +mkdir -p -m 0755 /var/log/pgmon +chown root:root /var/log/pgmon + %changelog * Wed Jan 08 2025 James Campbell - 1.0-1 - Initial RPM release. diff --git a/gentoo/files/pgmon.openrc b/openrc/pgmon.openrc similarity index 100% rename from gentoo/files/pgmon.openrc rename to openrc/pgmon.openrc diff --git a/sample-config/pgmon-service.conf b/sample-config/pgmon-service.conf new file mode 100644 index 0000000..51ebb33 --- /dev/null +++ b/sample-config/pgmon-service.conf @@ -0,0 +1,2 @@ +# Define the system user who will run pgmon +SERVICE_USER=postgres diff --git a/systemd/pgmon@.service b/systemd/pgmon@.service index c4172fe..0dec16b 100644 --- a/systemd/pgmon@.service +++ b/systemd/pgmon@.service @@ -5,6 +5,8 @@ Before=pgmon.service After=network.target [Service] +EnvironmentFile=/etc/pgmon/%i-service.conf +User=${SERVICE_USER:-postgres} ExecStart=/usr/local/bin/pgmon /etc/pgmon/%i.yml ExecReload=kill -HUP $MAINPID Restart=on-failure