__nginx_vhost: make configuration reload more robust

This commit is contained in:
fnux 2021-06-23 10:24:27 +02:00
parent 8db890deb4
commit 502cb54ce2
No known key found for this signature in database
GPG key ID: 4502C902C00A1E12

View file

@ -1,26 +1,35 @@
#!/bin/sh #!/bin/sh
os="$(cat "${__global:?}"/explorer/os)" os="$(cat "${__global:?}"/explorer/os)"
init=$(cat "$__global/explorer/init")
nginx_confdir="/etc/nginx"
case "$os" in # The nginx service is not automatically started on alpine.
alpine) if [ "$os" = "alpine" ]; then
reload_hook="service nginx --ifstopped start;\ echo "service nginx --ifstopped start"
service nginx --ifstarted reload" fi
;;
debian|ubuntu|*) if grep -qE "^__file$nginx_confdir" "${__messages_in:?}"; then
case "$init" in
systemd)
reload_hook="systemctl reload-or-restart nginx" reload_hook="systemctl reload-or-restart nginx"
;; ;;
esac busybox-init+openrc)
reload_hook="service nginx reload"
;;
*)
echo "Unknown init $init." >&2
exit 1
;;
esac
# Check configuration and reload if valid. cat <<- EOF
# TODO: only check if configuration was changed (= listen for __file's if nginx -t; then
# messages).
cat << EOF
if nginx -t; then
$reload_hook $reload_hook
else else
echo "NGINX configuration is invalid. Exiting." >2& echo "NGINX configuration is invalid. Exiting." >2&
nginx -t >2& nginx -t >2&
exit 1 exit 1
fi
EOF
fi fi
EOF