diff options
Diffstat (limited to 'security/nss/tests/qaclean')
-rwxr-xr-x | security/nss/tests/qaclean | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/security/nss/tests/qaclean b/security/nss/tests/qaclean new file mode 100755 index 000000000..14c71f390 --- /dev/null +++ b/security/nss/tests/qaclean @@ -0,0 +1,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 |