From 38f49de6d96239793f5207fc26f0826f6f8c1707 Mon Sep 17 00:00:00 2001 From: Ivan Dyachkov Date: Wed, 29 May 2024 15:28:55 +0200 Subject: [PATCH] fix(deb): fix apt purge when emqx service was still running --- deploy/packages/deb/debian/postrm | 5 +++-- scripts/pkg-tests.sh | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/deploy/packages/deb/debian/postrm b/deploy/packages/deb/debian/postrm index 5df55135a..9ee1dca87 100755 --- a/deploy/packages/deb/debian/postrm +++ b/deploy/packages/deb/debian/postrm @@ -21,6 +21,8 @@ set -e case "$1" in purge) + # force kill all processes owned by emqx, if any + pkill -9 -u emqx || true rm -f /etc/default/emqx if [ -d /var/lib/emqx ]; then @@ -38,9 +40,8 @@ case "$1" in if [ -e /etc/init.d/emqx ]; then rm /etc/init.d/emqx fi - # Remove User & Group, killing any process owned by them + # Remove User & Group if getent passwd emqx >/dev/null; then - pkill -u emqx || true deluser --quiet --system emqx fi if getent group emqx >/dev/null; then diff --git a/scripts/pkg-tests.sh b/scripts/pkg-tests.sh index a88020dd5..dfb5d098f 100755 --- a/scripts/pkg-tests.sh +++ b/scripts/pkg-tests.sh @@ -131,6 +131,21 @@ emqx_test(){ exit 1 fi + echo "try to install again and purge while the service is running" + dpkg -i "${PACKAGE_PATH}/${packagename}" + if [ "$(dpkg -l | grep ${EMQX_NAME} | awk '{print $1}')" != "ii" ] + then + echo "package install error" + exit 1 + fi + if ! /usr/bin/emqx start + then + echo "ERROR: failed_to_start_emqx" + cat /var/log/emqx/erlang.log.1 || true + cat /var/log/emqx/emqx.log.1 || true + exit 1 + fi + /usr/bin/emqx ping dpkg -P "${EMQX_NAME}" if dpkg -l |grep -q emqx then