/var/lib/pcp/testsuite/243 is in pcp-testsuite 4.0.1-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | #! /bin/sh
# PCP QA Test No. 243
# Multiple PMCDs test
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard filters
. ./common.product
. ./common.filter
. ./common.check
[ $PCP_PLATFORM = darwin ] && _notrun "Who knows what the darwin networking code is doing, don't bother with this test"
rm -f $seq.out
_get_libpcp_config
if $ipv6 ; then
ln $seq.out.ipv6 $seq.out || exit 1
else
ln $seq.out.nonipv6 $seq.out || exit 1
fi
_filter_err()
{
_filter_pmcd_log \
| sed \
-e 's/ __pmBind: / bind: /g' \
-e 's/may already be running/is already running/g' \
-e '/Log for pmcd/,/INADDR_ANY/c\
... boring stuff deleted' \
-e '/ok FD 44321 ipv6 INADDR_ANY/d' \
-e '/OpenRequestSocket.*unix.*bind: Address already in use/{
N
d
}' \
-e 's/ INADDR_ANY/ 0x0/g' \
#end
}
signal=$PCP_BINADM_DIR/pmsignal
_needclean=true
rm -rf $tmp
mkdir $tmp
chmod ugo+rwx $tmp
cd $tmp
cleanup()
{
cd $here
if $_needclean
then
_needclean=false
$signal -s TERM $my_pmcd_pid
pmsleep 1.5
unset PMCD_SOCKET
echo "Restart and ping pmcd ..."
_service pcp restart | _filter_pcp_start
_restore_auto_restart pmcd
_wait_for_pmcd
_wait_for_pmlogger
pmprobe pmcd.control.debug
fi
rm -rf $tmp $tmp.*
}
status=1
trap "cleanup; exit \$status" 0 1 2 3 15
_stop_auto_restart pmcd
# real QA test starts here
_service pcp stop | _filter_pcp_stop
# Note: start pmcd with -f so that its PID stays the same (no daemon)
#
export PMCD_SOCKET=$tmp/pmcd.socket
$PCP_PMCD_PROG -f -x err1 &
my_pmcd_pid=$!
_wait_for_pmcd
echo "Checking for startup errors ..."
[ -f err1 ] && _filter_err <err1
# Try to start another pmcd. This should fail because the socket is already in
# use. Make sure that there are no changes to the log file
#
if [ -f pmcd.log ]
then
cp pmcd.log pmcd.log.$$
else
echo "No pmcd.log, pmcd failed to start!"
exit
fi
echo
echo "Trying to start another PMCD over the top of the first one."
echo "Expect \"bind: Address already in use\"...:"
$PCP_PMCD_PROG -f -x err2 2>&1 | _filter_err &
# EADDRINUSE errors now have 4x250 msec delay while we retry before giving
# up, and this happens once per socket type, so up to 3 times ... and then
# wait a little longer ...
pmsleep 3.5
echo "Checking for startup errors ..."
[ -f err2 ] && _filter_err <err2
echo "Checking that log hasn't changed ..."
diff pmcd.log pmcd.log.$$
status=$?
|