Make systemd user configurable and create log directory

This commit is contained in:
James Campbell 2025-01-11 01:18:03 -05:00
parent 2c87a41048
commit 7b58b4a3ed
Signed by: james
GPG Key ID: 2287C33A40DC906A
6 changed files with 20 additions and 4 deletions

7
DEBIAN/postinst Executable file
View File

@ -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

View File

@ -25,7 +25,7 @@ deb:
docker run --rm \ docker run --rm \
-v .:/src:ro \ -v .:/src:ro \
-v ./$(BUILD_DIR)/deb:/output \ -v ./$(BUILD_DIR)/deb:/output \
--user $(shell id -u):$(shell i -g) \ --user $(shell id -u):$(shell id -g) \
$(DEB_IMAGE) $(DEB_IMAGE)
rpm: rpm:
@ -33,7 +33,7 @@ rpm:
docker run --rm \ docker run --rm \
-v .:/src:ro \ -v .:/src:ro \
-v ./$(BUILD_DIR)/rpm:/output \ -v ./$(BUILD_DIR)/rpm:/output \
--user $(shell id -u):$(shell i -g) \ --user $(shell id -u):$(shell id -g) \
$(RPM_IMAGE) $(RPM_IMAGE)
tgz: tgz:
@ -61,7 +61,7 @@ install:
# Install manpage # Install manpage
cp manpages/* $(DESTDIR)/usr/share/man/man1/ 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 # Install sample config
cp sample-config/* $(DESTDIR)/etc/$(PACKAGE_NAME)/ cp sample-config/* $(DESTDIR)/etc/$(PACKAGE_NAME)/
@ -103,7 +103,7 @@ ubuntu-install-test:
# Debian package creation logic # Debian package creation logic
package-deb: package-deb:
$(MAKE) install DESTDIR=/output $(MAKE) install DESTDIR=/output
cp -r DEBIAN /output/ cp -r --preserve=mode DEBIAN /output/
dpkg-deb -Zgzip --build /output /output/$(PACKAGE_NAME)_$(VERSION).deb dpkg-deb -Zgzip --build /output /output/$(PACKAGE_NAME)_$(VERSION).deb
# RPM package creation logic # RPM package creation logic

View File

@ -26,9 +26,14 @@ make -C /src install DESTDIR=%{buildroot}
/usr/share/man/man1/pgmon.1.gz /usr/share/man/man1/pgmon.1.gz
/etc/pgmon/pgmon.yml /etc/pgmon/pgmon.yml
/etc/pgmon/pgmon-metrics.yml /etc/pgmon/pgmon-metrics.yml
/etc/pgmon/pgmon-service.conf
/lib/systemd/system/pgmon.service /lib/systemd/system/pgmon.service
/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 %changelog
* Wed Jan 08 2025 James Campbell <james@commandprompt.com> - 1.0-1 * Wed Jan 08 2025 James Campbell <james@commandprompt.com> - 1.0-1
- Initial RPM release. - Initial RPM release.

View File

@ -0,0 +1,2 @@
# Define the system user who will run pgmon
SERVICE_USER=postgres

View File

@ -5,6 +5,8 @@ Before=pgmon.service
After=network.target After=network.target
[Service] [Service]
EnvironmentFile=/etc/pgmon/%i-service.conf
User=${SERVICE_USER:-postgres}
ExecStart=/usr/local/bin/pgmon /etc/pgmon/%i.yml ExecStart=/usr/local/bin/pgmon /etc/pgmon/%i.yml
ExecReload=kill -HUP $MAINPID ExecReload=kill -HUP $MAINPID
Restart=on-failure Restart=on-failure