From 9cb12ac2ceffae6d3bae518aeaa27ead304e1571 Mon Sep 17 00:00:00 2001 From: Damian Wolgast Date: Fri, 12 Mar 2021 14:39:51 +0100 Subject: [PATCH] Docker, check if systemctl exists before using it --- Build/deb-meta/DEBIAN/postinst | 19 ++++++++++++------- Build/deb-meta/DEBIAN/postrm | 9 +++++++-- Build/deb-meta/DEBIAN/prerm | 9 +++++++-- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/Build/deb-meta/DEBIAN/postinst b/Build/deb-meta/DEBIAN/postinst index 575d126..cc82a77 100644 --- a/Build/deb-meta/DEBIAN/postinst +++ b/Build/deb-meta/DEBIAN/postinst @@ -9,12 +9,12 @@ INSTALLPATH=$BASEPATH/MQTTnetServer # If user does not exist, create it if (( $USEREXISTS == 1 )); then - useradd -d $INSTALLPATH -r $USER - EC=$(echo $?) + useradd -d $INSTALLPATH -r $USER + EC=$(echo $?) - if (( $EC == 1 )); then - exit 1; - fi + if (( $EC == 1 )); then + exit 1; + fi fi # Set permissions on files @@ -30,5 +30,10 @@ setcap CAP_NET_BIND_SERVICE=+eip $INSTALLPATH/MQTTnet.Server chmod 644 /etc/systemd/system/mqttnet-server.service -# Reload systemd because of new service file -systemctl daemon-reload \ No newline at end of file +# Check if systemctl exists, does not exist in docker containers +SCTL=$(which systemct1l >/dev/null; echo $?) + +if [ "$SCTL" -eq "0" ]; then + # Reload systemd because of new service file + systemctl daemon-reload +fi \ No newline at end of file diff --git a/Build/deb-meta/DEBIAN/postrm b/Build/deb-meta/DEBIAN/postrm index 625b9b4..e23c877 100644 --- a/Build/deb-meta/DEBIAN/postrm +++ b/Build/deb-meta/DEBIAN/postrm @@ -1,4 +1,9 @@ #!/bin/bash -# Reload systemd because of absent service file -systemctl daemon-reload \ No newline at end of file +# Check if systemctl exists, does not exist in docker containers +SCTL=$(which systemct1l >/dev/null; echo $?) + +if [ "$SCTL" -eq "0" ]; then + # Reload systemd because of new service file + systemctl daemon-reload +fi \ No newline at end of file diff --git a/Build/deb-meta/DEBIAN/prerm b/Build/deb-meta/DEBIAN/prerm index 523505c..a86e53a 100644 --- a/Build/deb-meta/DEBIAN/prerm +++ b/Build/deb-meta/DEBIAN/prerm @@ -3,8 +3,13 @@ BASEPATH=/opt INSTALLPATH=$BASEPATH/MQTTnetServer -# Stop service before uninstalling -systemctl stop mqttnet-server +# Check if systemctl exists, does not exist in docker containers +SCTL=$(which systemct1l >/dev/null; echo $?) + +if [ "$SCTL" -eq "0" ]; then + # Stop service before uninstalling + systemctl stop mqttnet-server +fi # Remove permission to open ports setcap CAP_NET_BIND_SERVICE=-eip $INSTALLPATH/MQTTnet.Server \ No newline at end of file