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