nginx-sid/debian/nginx-core.postinst
Gioele Barabucci d9b4c476c1 d/nginx-*.postinst: Use invoke-rc.d instead of pidof and ad-hoc tests
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/
2022-09-25 22:03:56 +02:00

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