From dac25f54562e8abcf94cea8afc754487e4db2d54 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 30 Jun 2020 11:13:06 +0200 Subject: [PATCH] restart service on rpm or deb package upgrade --- CHANGELOG.md | 1 + .../deb/src/main/deb/control/postinst | 23 +++++++++++++++---- .../src/main/scripts/after-installation.sh | 18 +++++++++++---- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b108cd0f11..cb4d824441 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased ### Added - enrich commit mentions in markdown viewer by internal links ([#1210](https://github.com/scm-manager/scm-manager/pull/1210)) +- restart service after rpm or deb package upgrade ### Changed - Checkboxes can now be 'indeterminate' ([#1215](https://github.com/scm-manager/scm-manager/pull/1215)) diff --git a/scm-packaging/deb/src/main/deb/control/postinst b/scm-packaging/deb/src/main/deb/control/postinst index 0bd5ff952d..0ca852da1f 100644 --- a/scm-packaging/deb/src/main/deb/control/postinst +++ b/scm-packaging/deb/src/main/deb/control/postinst @@ -37,7 +37,22 @@ systemctl daemon-reload # enable and start the service sudo systemctl enable scm-server -# we start scm-manager after 5 seconds -# this is required, because if we install scm-manager with recommend java -# java is not fully setup if we ran our postint script -nohup sh -c "sleep 5; systemctl start scm-server" >/dev/null 2>&1 & +# reload systemd and make service available +systemctl --system daemon-reload || true + +# enable service +if ! systemctl is-enabled scm-server >/dev/null +then + systemctl enable scm-server +fi + +# start or restart service +if systemctl is-active scm-server >/dev/null +then + systemctl restart scm-server +else + # we start scm-manager after 5 seconds + # this is required, because if we install scm-manager with recommend java + # java is not fully setup if we ran our postint script + nohup sh -c "sleep 5; systemctl start scm-server" >/dev/null 2>&1 & +fi diff --git a/scm-packaging/rpm/src/main/scripts/after-installation.sh b/scm-packaging/rpm/src/main/scripts/after-installation.sh index 671d91fdff..6bd95afbe0 100644 --- a/scm-packaging/rpm/src/main/scripts/after-installation.sh +++ b/scm-packaging/rpm/src/main/scripts/after-installation.sh @@ -32,8 +32,18 @@ if [ -d "${WORKDIR}" ]; then fi # reload systemd and make service available -systemctl --system daemon-reload >/dev/null || true +systemctl --system daemon-reload || true -# enable and start the service -systemctl enable scm-server -systemctl start scm-server +# enable service +if ! systemctl is-enabled scm-server >/dev/null +then + systemctl enable scm-server +fi + +# start or restart service +if systemctl is-active scm-server >/dev/null +then + systemctl restart scm-server +else + systemctl start scm-server +fi