/security/nss/tests/qaclean
http://github.com/zpao/v8monkey · Shell · 144 lines · 108 code · 13 blank · 23 comment · 10 complexity · 7cef1c4d64b1e2779bd0382c45e407e3 MD5 · raw file
- #! /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