#!/bin/sh
-# postinst script for bind9-cn
-#
-# see: dh_installdeb(1)
set -e
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-#
+[ "$1" = "configure" ] || exit 0
+[ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
-case "$1" in
- configure|reconfigure)
- # continue below
- ;;
-
- *)
- exit 0
- ;;
-esac
-
-# import CN-functions
+# Load CARNet Tools
. /usr/share/carnet-tools/functions.sh
-# check if monitrc is an empty template
+# check if monitrc is ours
installfile=1
if [ -e /etc/monit/monitrc ]; then
- lines=$(grep -v '^#' /etc/monit/monitrc | wc -l)
- if [ $lines -lt 2 ]; then
+ if ! grep -q "CARNet package monit-cn" /etc/monit/monitrc; then
installfile=1
mv -f /etc/monit/monitrc /etc/monit/monitrc.dpkg-old
else
chmod u=rw,go= /etc/monit/monitrc
fi
-# generate monit.d files
-update-monit.d
+# sed monitrc with proper hostname
+if grep -q '@localhost' /etc/monit/monitrc; then
+ CARNET_HOSTNAME=`hostname`
+ CARNET_DOMAINNAME=`hostname --domain`
+ cp_check_and_sed '@localhost' \
+ "s/@localhost/@$CARNET_HOSTNAME.$CARNET_DOMAINNAME/g" \
+ /etc/monit/monitrc || true
+fi
-# disable monit startup
-cp_check_and_sed '^startup=1/#startup=1/g' /etc/default/monit \
- || true
+# migrate to "but not on { instance }" alerting style
+cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]* ' \
+ 's/^set alert \([^[:space:]]*@[^[:space:]]*\) .*$/set alert \1 but not on { instance }/g' \
+ /etc/monit/monitrc || true
-# install as inittab service
-if ! grep -q '/usr/sbin/monit' /etc/inittab; then
- if [ -x "/etc/init.d/monit" ]; then
- update-rc.d -f monit remove >/dev/null 2>&1
- if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
- invoke-rc.d monit stop || true
- else
- /etc/init.d/monit stop || true
- fi
- fi
- echo "CN: Installing monit service in /etc/inittab"
- rm -f /etc/inittab.$$
- cp /etc/inittab /etc/inittab.$$
- cp-update monit-cn /etc/inittab.$$ <<EOF
-mo:2345:respawn:/usr/sbin/monit -Ic /etc/monit/monitrc
-m0:06:wait:/usr/sbin/monit -Ic /etc/monit/monitrc stop myprocess
-EOF
- cp_mv /etc/inittab.$$ /etc/inittab
+# migrate from old hierarchy
+if [ -d /etc/monit.d ]; then
+ find /etc/monit.d -type f -print0 | xargs -0r -I% mv % /etc/monit/conf.d || true
+ rmdir /etc/monit.d >/dev/null 2>&1 || true
fi
-# reload init, since we have new configuration
-echo "CN: Starting monit service, please check /var/log/daemon.log"
-kill -HUP 1
+# (re)generate monit.d files
+update-monit.d || true
+
+# disable monit startup
+cp_check_and_sed '^startup[[:space:]]*=[[:space:]]*0' \
+ 's/^startup[[:space:]]*=.*/startup=1/g' /etc/default/monit || true
+cp_check_and_sed '^START[[:space:]]*=[[:space:]]*no' \
+ 's/^START[[:space:]]*=.*/START=yes/g' /etc/default/monit || true
+
+# remove us from systemv monit script
+if grep -q 'CARNet package monit-cn' /etc/init.d/monit; then
+ echo "CN: Removing monit workaround from /etc/init.d/monit -- systemd is in use"
+ cp-update -r monit-cn /etc/init.d/monit
+ chmod +x /etc/init.d/monit
+fi
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
+service monit restart
#DEBHELPER#