Skip to content

Commit

Permalink
check if systemd is running before calling systemd commands
Browse files Browse the repository at this point in the history
Makes installing on redhat containers not error out
  • Loading branch information
glimberg committed Aug 29, 2024
1 parent a842e3a commit 8c13cdc
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 31 deletions.
60 changes: 35 additions & 25 deletions htdocs/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
# shellcheck disable=SC2148
ENDOFSIGSTART=

export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
Expand Down Expand Up @@ -221,6 +222,7 @@ _new_apt_signing() {
echo "deb [signed-by=/usr/share/keyrings/zerotier-debian-package-key.gpg] ${URL}debian/$CODENAME $CODENAME main" >/tmp/zt-sources-list
}

# shellcheck disable=SC2072
write_apt_repo() {
DISTRIBUTION=$1
VERSION=$2
Expand All @@ -235,7 +237,7 @@ write_apt_repo() {
$SUDO apt-get install -y gpg
$SUDO chmod a+r /tmp/zt-gpg-key

if [[ "$DISTRIBUTION" == "ubuntu" && "$VERSION" < "22.04" ]]; then
if [[ "$DISTRIBUTION" == "ubuntu" && "$VERSION" < "22.04" ]]; then
_old_apt_signing $URL $CODENAME
elif [[ ("$DISTRIBUTION" == "debian" || "$DISTRIBUTION" == "raspbian") && "$VERSION" -lt "10" ]]; then
_old_apt_signing $URL $CODENAME
Expand All @@ -247,9 +249,9 @@ write_apt_repo() {
_new_apt_signing $URL $CODENAME
elif [[ "$DISTRIBUTION" == "linuxmint" && "$VERSION" == "6" ]]; then
_new_apt_signing $URL $CODENAME
elif [[ "$DISTRIBUTION" == "linuxmint" && ( "$VERSION" == "21" || "$VERSION" > "21" ) ]]; then
elif [[ "$DISTRIBUTION" == "linuxmint" && ( "$VERSION" == "21" || "$VERSION" -gt "21" ) ]]; then
_new_apt_signing $URL $CODENAME
elif [[ "$DISTRIBUTION" == "linuxmint" && ( "$VERSION" == "20" || ("$VERSION" > "20" && "$VERSION" < "21" ) ) ]]; then
elif [[ "$DISTRIBUTION" == "linuxmint" && ( "$VERSION" == "20" || ("$VERSION" -gt "20" && "$VERSION" -lt "21" ) ) ]]; then
_old_apt_signing $URL $CODENAME
else
echo "Unsupported distribution $DISTRIBUTION $VERSION"
Expand Down Expand Up @@ -301,7 +303,7 @@ elif [ $ID == "ubuntu" ] || [ $ID == "pop" ]; then
elif [ $ID == "linuxmint" ]; then
echo '*** Detected Linux Mint, creating /etc/apt/sources.list.d/zerotier.list'

if [[ "$VERSION_ID" > "$MAX_SUPPORTED_MINT_VERSION" ]]; then
if [[ "$VERSION_ID" -gt "$MAX_SUPPORTED_MINT_VERSION" ]]; then
write_apt_repo $ID $MAX_SUPPORTED_MINT_VERSION $ZT_BASE_URL_HTTP $MAX_SUPPORTED_MINT_VERSION_NAME
else
write_apt_repo $ID $VERSION_ID $ZT_BASE_URL_HTTP ${MINT_CODENAME_MAP[${VERSION_CODENAME}]}
Expand Down Expand Up @@ -392,14 +394,22 @@ echo
echo '*** Enabling and starting ZeroTier service...'

if [ -e /usr/bin/systemctl -o -e /usr/sbin/systemctl -o -e /sbin/systemctl -o -e /bin/systemctl ]; then
$SUDO systemctl enable zerotier-one
$SUDO systemctl start zerotier-one
if [ "$?" != "0" ]; then
echo
echo '*** Package installed but cannot start service! You may be in a Docker'
echo '*** container or using a non-standard init service.'
if if [[ -d /run/systemd/system ]]; then
$SUDO systemctl enable zerotier-one
$SUDO systemctl start zerotier-one
if [ "$?" != "0" ]; then
echo
echo '*** Package installed but cannot start service! You may be in a Docker'
echo '*** container or using a non-standard init service.'
echo
exit 1
fi
else
echo
exit 1
echo '*** Package installed but cannot start service! You may be in a Docker container'
echo '*** or using a non-standard init service.'

exit 0
fi
else
if [ -e /sbin/update-rc.d -o -e /usr/sbin/update-rc.d -o -e /bin/update-rc.d -o -e /usr/bin/update-rc.d ]; then
Expand All @@ -424,18 +434,18 @@ echo
exit 0
-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEdKXpxFjhpDHx2lenFlcZiCPlKmEFAmbPc0oVHGNvbnRhY3RA
emVyb3RpZXIuY29tAAoJEBZXGYgj5Sphl7YP/2szwVvzyFS+tQeVNWK8pr3Xjn/B
ZGUeS/LtZ1v3gpciDhVqocwU5wiXYZD/Ou47lgaH2rhnprMVfYRpY/N/kuP3RybE
n6KzEuHimk2aSNlUAilcdH2nhFsrgJKvvXb8KzAuMtjUfdgKBkdOMlYHpsoi7PVn
UCUySaDdaIZVZDhknvN2QksRJ1ABOyGDiLMmFTJ6pM/b7WhyrItIGcmIh4qKriie
WugGbCSxp9fyrUrKtf426hQQXyNelOx1z6xeJ7o/CGDfvuDT1Y+NXcdF78LWxTQF
YU/51Dq5JZcSZ0LRKKjGwXDKbmy10B6iLUqWJlsVb5zndDYwXOyaNHmoVPBKnkip
3O0eatUOasGPrFpDcE1W26AudoU1OCHL4q+lORgkhH0T06HHqpLcwaabAO7OvGU/
E3VGF9eyKKZYpOIlZ8TcZmMMmqkAZj7pX+vd2nUxw0YKvJYgm7qLhr+SCqvYwuDk
145DhgfjV0nrc5TVyHxGq++n5wTW/ceUa4DmRZlI6fHyvvo7SBD3SfE9PsbOJppY
bdIiVk+vmz35OCwAQXUif+sTS1NMwt4Idmtt3fnRYzbDQDjoxJIUivTTWU+nqGLJ
6qvTy7ggnZ9sT/FJNVtM3PpB2S3qUX7SeKf0qy9s+zlIFgQINzPJXyIaphwk2HLa
NQ1sqHFFmu6KSfFd
=WWIe
iQJJBAEBCAAzFiEEdKXpxFjhpDHx2lenFlcZiCPlKmEFAmbQr/kVHGNvbnRhY3RA
emVyb3RpZXIuY29tAAoJEBZXGYgj5SphEj8QAKcVQPqjySCvK0fvngFXHcaocuvd
G0G1R3R4HDxcJVHoghnwF3V7o2oGISOGW33YAd81L09QxRB4jtnQacgBO9T+f3ic
AXLW5T5EIr4ThtjEgBuSnmuwzLgV6PalDU783JCSE9icAaLoR0EfmeCLtnRZVX+x
0MvUW01Zbagu+vkc30nt1nLpeFnYWo6ya3x7LOD+VK9rJI+YAgG+S139Z1NZy9rR
C7GRQfKgVZhxRVkFjjPmhzMQf92clEMlp2rlB+kaEa4gYaSBHbiMr3Ft5ohnauq4
7JRrrzbEQadgsXmgtAXeJZAXnKreT2BuqQCAMLp+82C828zmkH2l+csxIVL2bnBJ
/K5YsubI95hf2P+p6WPdIM1bSaf0PfmPL74YdutNvxCX7mHsPS81blHUpTyJpR5P
KKig0fqzdZjddAX1PbyCtTUbPQw6L16kuE9Zpe4AzZ1h+2LNkbNHUvKgGh7ZUEQR
dfgbR6YDiMEPgBGQBcWDTUESx0nPoxrc1e0BUjCx6o730GPlpag3G2EaEXYFYk17
QM/Y2V1KNCxQXKCsbUTTHV4gE5A6FyoHD218S4JMjfQI17dUHPwci4qkaRI0FXT0
tCQjwnXxM7yuSW6VhSUA+9JTuVjk2+IU3aYuxIxbULqzlWAgNiyoOw77fvvMERtm
9ccxB0x3PgVZ/6Fo
=0Yp1
-----END PGP SIGNATURE-----
20 changes: 14 additions & 6 deletions install.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -389,14 +389,22 @@ echo
echo '*** Enabling and starting ZeroTier service...'

if [ -e /usr/bin/systemctl -o -e /usr/sbin/systemctl -o -e /sbin/systemctl -o -e /bin/systemctl ]; then
$SUDO systemctl enable zerotier-one
$SUDO systemctl start zerotier-one
if [ "$?" != "0" ]; then
if [[ -d /run/systemd/system ]]; then
$SUDO systemctl enable zerotier-one
$SUDO systemctl start zerotier-one
if [ "$?" != "0" ]; then
echo
echo '*** Package installed but cannot start service! You may be in a Docker'
echo '*** container or using a non-standard init service.'
echo
exit 1
fi
else
echo
echo '*** Package installed but cannot start service! You may be in a Docker'
echo '*** container or using a non-standard init service.'
echo '*** Package installed but cannot start service! You may be in a Docker container'
echo '*** or using a non-standard init service.'
echo
exit 1
exit 0
fi
else
if [ -e /sbin/update-rc.d -o -e /usr/sbin/update-rc.d -o -e /bin/update-rc.d -o -e /usr/bin/update-rc.d ]; then
Expand Down

0 comments on commit 8c13cdc

Please sign in to comment.