This is the script used to stop MQSeries in the HACMP environment.




#!/bin/ksh

TMPFILE="/tmp/tmp${$}.tmp"

# 
# Search the /etc/inetd.conf file for MQSeries listeners
# which are not commented out and correspond with the
# associated Queue Manager running this script.  If
# found, comment out the listener(s), overwrite the
# /etc/inetd.conf file with the new modified version, and
# refresh the "inetd" process.
# 
if sed -e "s/^[^#].*[$' \t']amqcrsta[$' \t'].*${1}.*/# &/g" \
< /etc/inetd.conf \
> ${TMPFILE}
then
  print "Successfully modified /etc/inetd.conf" | tee /dev/console
  if cp ${TMPFILE} /etc/inetd.conf
  then
    print "Successfully replaced /etc/inetd.conf" | tee /dev/console
    if refresh -s inetd
    then
      print "Successfully refreshed the inetd daemon" | tee /dev/console
    else
      print "ERROR: Unable to refresh the inetd daemon" | tee /dev/console 1>&2
    fi
  else
    print "ERROR: Unable to copy to /etc/inetd.conf" | tee /dev/console 1>&2
  fi
else
  print "ERROR: Unable to comment out listeners from /etc/inetd.conf" | tee /dev/console 1>&2
fi
[[ -f ${TMPFILE} ]] && rm -f ${TMPFILE}

# 
# Killing all existing instances of the listener
# 
ps -ef -F pid,args |
grep "[$' \t']amqcrsta[$' \t']*" |
while read PID COMMAND
do
    print "MQSeries: Stopping listeners: kill -9 ${PID}" | tee /dev/console
    kill -9 ${PID}
done

su mqm -c /MQHA/bin/hamqm_stop_su $*