X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=debian%2Fpostinst;h=db5d0e641608d860f04c175580ddfef7c7ef20f2;hb=5f60b25a07dea5c8672a7abbcbb8dc0e1e521f19;hp=88bca34f93df3fd42969fb4e7fa41f44c9445d10;hpb=709fdb91b20f897277f8ac5fd5b87d1671d33905;p=monit-cn.git diff --git a/debian/postinst b/debian/postinst index 88bca34..db5d0e6 100755 --- a/debian/postinst +++ b/debian/postinst @@ -30,11 +30,10 @@ esac # import CN-functions . /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 4 ]; 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 @@ -56,60 +55,84 @@ if grep -q '@localhost' /etc/monit/monitrc; then /etc/monit/monitrc || true fi -# fix "but not on { changed } bug in monitrc -cp_check_and_sed '^set alert [^[:space:]]*@[^[:space:]]* $' \ - 's/^set alert \([^[:space:]]*@[^[:space:]]*\).*$/set alert \1 but not on { instance }/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 +# 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 + # (re)generate monit.d files update-monit.d || true # disable monit startup cp_check_and_sed '^startup[[:space:]]*=[[:space:]]*1' \ - 's/^startup[[:space:]]*=.*/startup=0/g' /etc/default/monit || true - -# systemv part -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 - if [ -e "/etc/init.d/monit" ]; then - # shebang - head -n1 /etc/init.d/monit > /etc/init.d/monit.$$ - # middle part - cp-update monit-cn /etc/init.d/monit.$$ <> /etc/init.d/monit.$$ - mv -f /etc/init.d/monit.$$ /etc/init.d/monit - chmod +x /etc/init.d/monit - fi + 's/^startup[[:space:]]*=.*/startup=1/g' /etc/default/monit || true +cp_check_and_sed '^START[[:space:]]*=[[:space:]]*yes' \ + '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 -# install as inittab service -if ! grep -q '/usr/sbin/monit' /etc/inittab; then - echo "CN: Installing monit service in /etc/inittab" - cp -a /etc/inittab /etc/inittab.$$ - cp-update monit-cn /etc/inittab.$$ </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 +# if [ -e "/etc/init.d/monit" ]; then +# # shebang +# head -n1 /etc/init.d/monit > /etc/init.d/monit.$$ +# # middle part +# cp-update monit-cn /etc/init.d/monit.$$ <> /etc/init.d/monit.$$ +# mv -f /etc/init.d/monit.$$ /etc/init.d/monit +# chmod +x /etc/init.d/monit +# fi +#fi +# +## if old inittab is referencing sbin, fix it +#if grep -q '/usr/sbin/monit' /etc/inittab; then +# cp_check_and_sed '/usr/sbin/monit' \ +# 's:/usr/sbin/monit:/usr/bin/monit:g' \ +# /etc/inittab || true +#fi +# +## install as inittab service +#if ! grep -q '/usr/bin/monit' /etc/inittab; then +# echo "CN: Installing monit service in /etc/inittab" +# cp -a /etc/inittab /etc/inittab.$$ +# cp-update monit-cn /etc/inittab.$$ <