Browse Source

Use systemd helpers to honor system wide preferences on service enable/start

Also fix services being started after upgrade even if they were disabled but config existed
pull/60/head
emanuele-f 6 years ago
parent
commit
a96237f83d
  1. 20
      packages/debian/debian/postinst
  2. 10
      packages/debian/debian/prerm
  3. 26
      packages/rpm/n2n.spec.in

20
packages/debian/debian/postinst

@ -27,17 +27,21 @@ systemctl daemon-reload
systemctl reset-failed systemctl reset-failed
# Enable edge # Enable edge
if [ -f /etc/n2n/edge.conf ]; then if systemctl -q is-active edge; then
echo "Enabling n2n edge..." # only restart edge if it's already running
systemctl enable edge echo "Restarting n2n edge..."
systemctl restart edge deb-systemd-invoke restart edge
fi fi
# Restart specific services if already running
deb-systemd-invoke enable 'edge@*.service' 'edge-ntopng@*.service'
deb-systemd-invoke restart 'edge@*.service' 'edge-ntopng@*.service'
# Enable supernode # Enable supernode
if [ -f /etc/n2n/supernode.conf ]; then if systemctl -q is-active supernode; then
echo "Enabling n2n supernode..." # only restart supernode if it's already running
systemctl enable supernode echo "Restarting n2n supernode..."
systemctl restart supernode deb-systemd-invoke restart supernode
fi fi
exit 0 exit 0

10
packages/debian/debian/prerm

@ -7,12 +7,14 @@ if [ -f /.dockerenv ]; then exit 0; fi
. /usr/share/debconf/confmodule . /usr/share/debconf/confmodule
case "$1" in case "$1" in
upgrade)
;;
*) *)
systemctl stop edge deb-systemd-invoke stop edge.service 'edge@*.service' 'edge-ntopng@*.service'
systemctl disable edge deb-systemd-invoke disable edge.service 'edge@*.service' 'edge-ntopng@*.service'
systemctl stop supernode deb-systemd-invoke stop supernode.service
systemctl disable supernode deb-systemd-invoke disable supernode.service
systemctl daemon-reload systemctl daemon-reload
systemctl reset-failed systemctl reset-failed
;; ;;

26
packages/rpm/n2n.spec.in

@ -70,29 +70,19 @@ rm -fr $RPM_BUILD_ROOT
%pre %pre
%post %post
if [ ! -f /.dockerenv ]; then if [ ! -f /.dockerenv ]; then
/bin/systemctl daemon-reload /bin/systemctl daemon-reload
if [ -f /etc/n2n/edge.conf ]; then # NOTE: do not enable any services during first installation
/bin/systemctl enable edge.service
/bin/systemctl restart edge.service
fi
if [ -f /etc/n2n/supernode.conf ]; then
/bin/systemctl enable supernode.service
/bin/systemctl restart supernode.service
fi
fi fi
%preun %preun
if [ ! -f /.dockerenv ]; then if [ ! -f /.dockerenv ]; then
if [ -f /etc/n2n/edge.conf ]; then # possibly remove the installed services
/bin/systemctl disable edge.service %systemd_preun supernode.service edge.service 'edge-ntopng@*.service' 'edge@*.service'
/bin/systemctl stop edge.service
fi fi
if [ -f /etc/n2n/supernode.conf ]; then %postun
/bin/systemctl disable supernode.service if [ ! -f /.dockerenv ]; then
/bin/systemctl stop supernode.service # possibly restart the running services
fi %systemd_postun_with_restart supernode.service edge.service 'edge-ntopng@*.service' 'edge@*.service'
fi fi

Loading…
Cancel
Save