DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (b66b287a2650)

VCS Links

Line Code
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 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
#! /bin/sh

########################################################################
#
# /u/sonmi/bin/qaclean
#
# is supposed to clean up after a "hanging" QA
#
# 1) see if there is a lockfile 
#    if yes: 
#    1a) kill the process of the lockfile and if possible it's children
#    1b) rm the lockfile
# 2) kill selfservers
# 3) clean up old tmp files
#
########################################################################

if [ -z "$TMP" ]
then
    if [  -z "$TEMP" ]
    then
        TMP="/tmp"
    else
        TMP=$TEMP
    fi
fi
if [ ! -w "$TMP" ]
then
    echo "Can't write to tmp directory $TMP - exiting"
    echo "Can't write to tmp directory $TMP - exiting" >&2
    exit 1
fi

########################### Ps #########################################
# platform specific ps
########################################################################
Ps()
{
    if [ `uname -s` = "SunOS" ]
    then
        /usr/5bin/ps -e
    else
        ps -e
    fi
}

Kill()
{
    if [ "$1" = "$$" ]
    then
        return
    fi
    echo "Killing PID $1"
    kill $1
    sleep 1
    kill -9 $1 2>/dev/null
}

########################### kill_by_name ################################
# like killall, only without permissionproblems, kills the process whose 
# name is given as parameter
########################################################################
kill_by_name()
{
    echo "Killing all $1"
 
    for PID in `Ps | grep "$1" | grep -v grep | \
        sed -e "s/^[     ]*//g" -e "s/[     ].*//"`
    do
        Kill $PID
    done
}

kill_the_rest()
{
i=0
while [ $i -lt $1 ]
do
    kill_by_name nssqa
    kill_by_name selfserv
    kill_by_name strsclnt
    kill_by_name all.sh
    kill_by_name sdr.sh
    kill_by_name ssl.sh
    kill_by_name smime.sh
    i=`expr $i + 1`
done
}

nt_warning()
{
os_name=`uname -s`
case $os_name in
    CYGWIN*|WIN*|Win*)
        echo
        echo
        echo
        echo "Another Windows problem... If you have not already done so"
        echo "after this script completes, please reboot, and log in as"
        echo "user svbld again"
        echo
        echo
        echo
        ;;
esac
}

nt_warning
case $1 in 
    -all)
        for w in tommy booboo kentuckyderby galileo shame axilla columbus \
                 smarch charm hp64 biggayal orville kwyjibo hbombaix raven \
                 jordan hornet phaedrus louie box dbldog huey washer dryer \
                 shabadoo trex bummer compaqtor jellyfish sjsu
        do
                echo $w
                ping $w && rsh $w '/u/sonmi/bin/qaclean'
        done

        ;;
    ?*)
        rsh $1 '/u/sonmi/bin/qaclean'
        exit
        ;;
esac

uname -a
echo

if [ -f ${TMP}/nssqa.* ]
then
    echo "nssqa seems to be running ${TMP}/nssqa.*"
    #cat ${TMP}/nssqa.*
    NSSQA_PID=`ls ${TMP}/nssqa.* | sed -e 's/[^.]*\.//'`
    Kill $NSSQA_PID
    rm ${TMP}/nssqa.*
fi

kill_the_rest 3
ls -l ${TMP}/nsstmp.*
rm ${TMP}/nsstmp.* 2>/dev/null
rm ${TMP}/certutilout.* 2>/dev/null
rm ${TMP}/Pk12*
nt_warning