Checking if nginx is running using and a mixture of file tests and `pidof` is fragile. Debian policy 9.3.3 states that `invoke-rc.d` should be used instead to perform these checks. In addition, the use of `pidof` creates an implicit depency on `sysvinit-utils`. `sysvinit-utils` is currently essential, but that may change in the future. Patch originally contributed by @ah: https://paste.debian.net/1254794/
33 lines
693 B
Bash
33 lines
693 B
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
case "$1" in
|
|
abort-upgrade|abort-remove|abort-deconfigure|configure)
|
|
;;
|
|
triggered)
|
|
if invoke-rc.d --quiet nginx status >/dev/null; then
|
|
echo "Triggering nginx reload ..."
|
|
invoke-rc.d nginx reload || true
|
|
fi
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if invoke-rc.d --quiet nginx status >/dev/null; then
|
|
invoke-rc.d nginx upgrade || invoke-rc.d nginx restart
|
|
exit $?
|
|
else
|
|
if [ -z "$(ss -nlt 'sport = 80' | grep -v ^State)" ]; then
|
|
invoke-rc.d nginx start || exit $?
|
|
echo "Not attempting to start NGINX, port 80 is already in use."
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
#DEBHELPER#
|
|
|
|
exit 0
|