natan wrote in
 <b0322df0-ebb7-f479-8205-010b99a5e...@epf.pl>:
 |Hi
 |I use keepalived and easy check like:
 |
 |vrrp_script chk_myscript {
 |     script     "/usr/bin/postfix-check.sh"
 |     interval    4
 |     fall        2
 |     weight      10
 |     user root
 |}
 |
 |...
 |#!/bin/bash
 |echo "ehlo localhost" | /bin/nc -w 1 "127.0.0.1" 25 |grep -q "250"
 |...
 |
 |It's not very pretty but do you have any similar solutions?
 |--

From localhost either

  postfix_watchdog() {
     postfix__init
     ${prog} status >/dev/null 2>&1
     [ ${?} -ne 0 ] && postfix_start
  }

or

  postfix_status() {
  # As postfix does not use stdout but console, no
  #   postfix__init
  #   ${prog} status 2>&1
     name=postfix
     eval $(postconf daemon_directory data_directory | tr -d '[  ]')
     prog=${daemon_directory}/master
     pid=${data_directory}/master.lock
     daemons__stat_and_dog n
  }

and

  daemons__stat_and_dog() {
     {
     isdog=${1}
     exe=${prog}
     [ -n "${exe}" ] && exe=' --exec '${exe}

     if [ -n "${DAEMONS_SSD_GRACEFUL}" ]; then
        ${ssd} --status --pidfile ${pid} ${exe}
        e=${?}
     else
        # XXX busybox start-stop-daemon without --status
        # XXX After checking "kill -0 $PID" we could "pgrep $exe" and ensure
        # XXX $PID is found in output!
        if [ -f ${pid} ]; then
           i=$(cat ${pid})
           if kill -0 ${i} >/dev/null 2>/dev/null; then
              e=0
           else
              e=1
           fi
        else
           e=3
        fi
     fi

     if [ ${isdog} != y ]; then
        case ${e} in
        0) echo "${name} is running with pid $(cat ${pid})";;
        1) echo "${name} is not running but the pid file ${pid} exists";;
        3) echo ${name}' is not running';;
        4) echo ${name}' is in unknown state';;
        esac
     elif [ ${e} -ne 0 ]; then
        echo >&2 ${name}' watchdog forces start'
        if [ ${e} -eq 1 ]; then
           rm -f ${pid}
        elif [ ${e} -eq 4 ]; then
           ( eval ${name}_stop ) 2>/dev/null
        fi
        eval ${name}_start
        e=${?}
     fi
     } 2>&1

     return ${e}
  }

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)
_______________________________________________
Postfix-users mailing list -- postfix-users@postfix.org
To unsubscribe send an email to postfix-users-le...@postfix.org
  • [pfx] smtpcheck natan via Postfix-users
    • [pfx] Re: smtpcheck Steffen Nurpmeso via Postfix-users

Reply via email to