From 8fe9b170705f7df8039f8edb0ca2ec068c432596 Mon Sep 17 00:00:00 2001 From: Heikki Hannikainen Date: Sun, 6 Sep 2020 20:00:38 +0000 Subject: [PATCH] systemd: Set up chroot environment in a separate service, once. --- src/debian/aprsc-chroot.service | 14 ++++++++++++++ src/debian/aprsc.service | 4 ++-- src/debian/aprsc@.service | 4 ++-- src/debian/rules | 1 + 4 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 src/debian/aprsc-chroot.service diff --git a/src/debian/aprsc-chroot.service b/src/debian/aprsc-chroot.service new file mode 100644 index 0000000..4a874c0 --- /dev/null +++ b/src/debian/aprsc-chroot.service @@ -0,0 +1,14 @@ +[Unit] +Description=APRS-IS server chroot environment +After=network.target +Documentation=http://he.fi/aprsc/, man:aprsc(8) + +[Service] +Type=oneshot +ExecStart=/opt/aprsc/sbin/aprsc-prepare-chroot.sh +User=root +Group=root + +[Install] +WantedBy=multi-user.target +Alias=aprsc-chroot.service diff --git a/src/debian/aprsc.service b/src/debian/aprsc.service index f1230a1..7b40683 100644 --- a/src/debian/aprsc.service +++ b/src/debian/aprsc.service @@ -1,11 +1,11 @@ [Unit] Description=APRS-IS server -After=network.target +After=network.target aprsc-chroot.service +Requires=aprsc-chroot.service Documentation=http://he.fi/aprsc/, man:aprsc(8) [Service] Type=simple -ExecStartPre=/opt/aprsc/sbin/aprsc-prepare-chroot.sh ExecStart=/opt/aprsc/sbin/aprsc -u aprsc -t /opt/aprsc -e info -o file -r logs -c etc/aprsc.conf ExecReload=/bin/kill -USR1 $MAINPID PIDFile=/opt/aprsc/logs/aprsc.pid diff --git a/src/debian/aprsc@.service b/src/debian/aprsc@.service index 5284f98..43b3f52 100644 --- a/src/debian/aprsc@.service +++ b/src/debian/aprsc@.service @@ -1,11 +1,11 @@ [Unit] Description="APRS-IS server #%i" -After=network.target +After=network.target aprsc-chroot.service +Requires=aprsc-chroot.service Documentation=http://he.fi/aprsc/, man:aprsc(8) [Service] Type=simple -ExecStartPre=/opt/aprsc/sbin/aprsc-prepare-chroot.sh ExecStart=/opt/aprsc/sbin/aprsc -n aprsc-%i -u aprsc -t /opt/aprsc -e info -o file -r logs -c etc/aprsc-%i.conf ExecReload=/bin/kill -USR1 $MAINPID PIDFile=/opt/aprsc/logs/aprsc-%i.pid diff --git a/src/debian/rules b/src/debian/rules index 1364e79..98f625c 100755 --- a/src/debian/rules +++ b/src/debian/rules @@ -78,6 +78,7 @@ binary-arch: build install # this will work on ubuntu 18.04: dh_installsystemd # but in the mean time: cp -p $(CURDIR)/debian/aprsc@.service $(CURDIR)/debian/aprsc/lib/systemd/system/aprsc@.service + cp -p $(CURDIR)/debian/aprsc-chroot.service $(CURDIR)/debian/aprsc/lib/systemd/system/aprsc-chroot.service # dh_installcron # dh_installinfo dh_installman