#!/bin/sh
-# postinst script for bind9-cn
+# postinst script for monit-cn
#
# see: dh_installdeb(1)
installfile=1
if [ -e /etc/monit/monitrc ]; then
lines=$(grep -v '^#' /etc/monit/monitrc | wc -l)
- if [ $lines -lt 2 ]; then
+ if [ $lines -lt 4 ]; then
installfile=1
mv -f /etc/monit/monitrc /etc/monit/monitrc.dpkg-old
else
/etc/monit/monitrc || true
fi
-# fix "but not on { changed } bug in monitrc
-cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]* (but )?not on { changed }$' \
- 's/^set alert \([^[:space:]]*@[^[:space:]]*\) .*$/set alert \1 only on { uid, gid, size, nonexist, data, icmp, instance, invalid, exec, timeout, resource, checksum, match, timestamp, connection, permission }/g' \
- /etc/monit/monitrc || true
-
-# if alert for "changed" is enabled, disable it ASAP
-# we're waiting for "but not on { changed }" to enter in official
-# package...
-cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]*$' \
- 's/^set alert \([^[:space:]]*@[^[:space:]]*\)$/set alert \1 only on { uid, gid, size, nonexist, data, icmp, instance, invalid, exec, timeout, resource, checksum, match, timestamp, connection, permission }/g' \
+# 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
# (re)generate monit.d files
# disable monit startup
cp_check_and_sed '^startup[[:space:]]*=[[:space:]]*1' \
- '^startup[[:space:]]*=.*/startup=0/g' /etc/default/monit || true
+ 's/^startup[[:space:]]*=.*/startup=0/g' /etc/default/monit || true
# systemv part
-echo "CN: Disabling monit SystemV script"
-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
+if ! grep -q 'CARNet package monit-cn' /etc/init.d/monit; then
+ echo "CN: Disabling monit SystemV script"
+ 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
-fi
-if [ -e "/etc/init.d/monit" ]; then
- if ! grep -q 'CARNet package monit-cn' /etc/init.d/monit; then
+ if [ -e "/etc/init.d/monit" ]; then
# shebang
head -n1 /etc/init.d/monit > /etc/init.d/monit.$$
# middle part
# install as inittab service
if ! grep -q '/usr/sbin/monit' /etc/inittab; then
echo "CN: Installing monit service in /etc/inittab"
- rm -f /etc/inittab.$$
- cp /etc/inittab /etc/inittab.$$
+ cp -a /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
# reload init, since we have new configuration
echo "CN: (Re)starting monit service, please check /var/log/daemon.log"
-pkill -9 -f /usr/sbin/monit || true
-kill -HUP 1
+pkill -9 -f '/usr/sbin/monit$' || true
+telinit q
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.