Blame nss/tests/qaclean

Packit 40b132
#! /bin/sh
Packit 40b132
Packit 40b132
########################################################################
Packit 40b132
#
Packit 40b132
# /u/sonmi/bin/qaclean
Packit 40b132
#
Packit 40b132
# is supposed to clean up after a "hanging" QA
Packit 40b132
#
Packit 40b132
# 1) see if there is a lockfile 
Packit 40b132
#    if yes: 
Packit 40b132
#    1a) kill the process of the lockfile and if possible it's children
Packit 40b132
#    1b) rm the lockfile
Packit 40b132
# 2) kill selfservers
Packit 40b132
# 3) clean up old tmp files
Packit 40b132
#
Packit 40b132
########################################################################
Packit 40b132
Packit 40b132
if [ -z "$TMP" ]
Packit 40b132
then
Packit 40b132
    if [  -z "$TEMP" ]
Packit 40b132
    then
Packit 40b132
        TMP="/tmp"
Packit 40b132
    else
Packit 40b132
        TMP=$TEMP
Packit 40b132
    fi
Packit 40b132
fi
Packit 40b132
if [ ! -w "$TMP" ]
Packit 40b132
then
Packit 40b132
    echo "Can't write to tmp directory $TMP - exiting"
Packit 40b132
    echo "Can't write to tmp directory $TMP - exiting" >&2
Packit 40b132
    exit 1
Packit 40b132
fi
Packit 40b132
Packit 40b132
########################### Ps #########################################
Packit 40b132
# platform specific ps
Packit 40b132
########################################################################
Packit 40b132
Ps()
Packit 40b132
{
Packit 40b132
    if [ `uname -s` = "SunOS" ]
Packit 40b132
    then
Packit 40b132
        /usr/5bin/ps -e
Packit 40b132
    else
Packit 40b132
        ps -e
Packit 40b132
    fi
Packit 40b132
}
Packit 40b132
Packit 40b132
Kill()
Packit 40b132
{
Packit 40b132
    if [ "$1" = "$$" ]
Packit 40b132
    then
Packit 40b132
        return
Packit 40b132
    fi
Packit 40b132
    echo "Killing PID $1"
Packit 40b132
    kill $1
Packit 40b132
    sleep 1
Packit 40b132
    kill -9 $1 2>/dev/null
Packit 40b132
}
Packit 40b132
Packit 40b132
########################### kill_by_name ################################
Packit 40b132
# like killall, only without permissionproblems, kills the process whose 
Packit 40b132
# name is given as parameter
Packit 40b132
########################################################################
Packit 40b132
kill_by_name()
Packit 40b132
{
Packit 40b132
    echo "Killing all $1"
Packit 40b132
 
Packit 40b132
    for PID in `Ps | grep "$1" | grep -v grep | \
Packit 40b132
        sed -e "s/^[     ]*//g" -e "s/[     ].*//"`
Packit 40b132
    do
Packit 40b132
        Kill $PID
Packit 40b132
    done
Packit 40b132
}
Packit 40b132
Packit 40b132
kill_the_rest()
Packit 40b132
{
Packit 40b132
i=0
Packit 40b132
while [ $i -lt $1 ]
Packit 40b132
do
Packit 40b132
    kill_by_name nssqa
Packit 40b132
    kill_by_name selfserv
Packit 40b132
    kill_by_name strsclnt
Packit 40b132
    kill_by_name all.sh
Packit 40b132
    kill_by_name sdr.sh
Packit 40b132
    kill_by_name ssl.sh
Packit 40b132
    kill_by_name smime.sh
Packit 40b132
    i=`expr $i + 1`
Packit 40b132
done
Packit 40b132
}
Packit 40b132
Packit 40b132
nt_warning()
Packit 40b132
{
Packit 40b132
os_name=`uname -s`
Packit 40b132
case $os_name in
Packit 40b132
    CYGWIN*|WIN*|Win*)
Packit 40b132
        echo
Packit 40b132
        echo
Packit 40b132
        echo
Packit 40b132
        echo "Another Windows problem... If you have not already done so"
Packit 40b132
        echo "after this script completes, please reboot, and log in as"
Packit 40b132
        echo "user svbld again"
Packit 40b132
        echo
Packit 40b132
        echo
Packit 40b132
        echo
Packit 40b132
        ;;
Packit 40b132
esac
Packit 40b132
}
Packit 40b132
Packit 40b132
nt_warning
Packit 40b132
case $1 in 
Packit 40b132
    -all)
Packit 40b132
        for w in tommy booboo kentuckyderby galileo shame axilla columbus \
Packit 40b132
                 smarch charm hp64 biggayal orville kwyjibo hbombaix raven \
Packit 40b132
                 jordan hornet phaedrus louie box dbldog huey washer dryer \
Packit 40b132
                 shabadoo trex bummer compaqtor jellyfish sjsu
Packit 40b132
        do
Packit 40b132
                echo $w
Packit 40b132
                ping $w && rsh $w '/u/sonmi/bin/qaclean'
Packit 40b132
        done
Packit 40b132
Packit 40b132
        ;;
Packit 40b132
    ?*)
Packit 40b132
        rsh $1 '/u/sonmi/bin/qaclean'
Packit 40b132
        exit
Packit 40b132
        ;;
Packit 40b132
esac
Packit 40b132
Packit 40b132
uname -a
Packit 40b132
echo
Packit 40b132
Packit 40b132
if [ -f ${TMP}/nssqa.* ]
Packit 40b132
then
Packit 40b132
    echo "nssqa seems to be running ${TMP}/nssqa.*"
Packit 40b132
    #cat ${TMP}/nssqa.*
Packit 40b132
    NSSQA_PID=`ls ${TMP}/nssqa.* | sed -e 's/[^.]*\.//'`
Packit 40b132
    Kill $NSSQA_PID
Packit 40b132
    rm ${TMP}/nssqa.*
Packit 40b132
fi
Packit 40b132
Packit 40b132
kill_the_rest 3
Packit 40b132
ls -l ${TMP}/nsstmp.*
Packit 40b132
rm ${TMP}/nsstmp.* 2>/dev/null
Packit 40b132
rm ${TMP}/certutilout.* 2>/dev/null
Packit 40b132
rm ${TMP}/Pk12*
Packit 40b132
nt_warning