1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/security/nss/tests/qaclean Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,144 @@ 1.4 +#! /bin/sh 1.5 + 1.6 +######################################################################## 1.7 +# 1.8 +# /u/sonmi/bin/qaclean 1.9 +# 1.10 +# is supposed to clean up after a "hanging" QA 1.11 +# 1.12 +# 1) see if there is a lockfile 1.13 +# if yes: 1.14 +# 1a) kill the process of the lockfile and if possible it's children 1.15 +# 1b) rm the lockfile 1.16 +# 2) kill selfservers 1.17 +# 3) clean up old tmp files 1.18 +# 1.19 +######################################################################## 1.20 + 1.21 +if [ -z "$TMP" ] 1.22 +then 1.23 + if [ -z "$TEMP" ] 1.24 + then 1.25 + TMP="/tmp" 1.26 + else 1.27 + TMP=$TEMP 1.28 + fi 1.29 +fi 1.30 +if [ ! -w "$TMP" ] 1.31 +then 1.32 + echo "Can't write to tmp directory $TMP - exiting" 1.33 + echo "Can't write to tmp directory $TMP - exiting" >&2 1.34 + exit 1 1.35 +fi 1.36 + 1.37 +########################### Ps ######################################### 1.38 +# platform specific ps 1.39 +######################################################################## 1.40 +Ps() 1.41 +{ 1.42 + if [ `uname -s` = "SunOS" ] 1.43 + then 1.44 + /usr/5bin/ps -e 1.45 + else 1.46 + ps -e 1.47 + fi 1.48 +} 1.49 + 1.50 +Kill() 1.51 +{ 1.52 + if [ "$1" = "$$" ] 1.53 + then 1.54 + return 1.55 + fi 1.56 + echo "Killing PID $1" 1.57 + kill $1 1.58 + sleep 1 1.59 + kill -9 $1 2>/dev/null 1.60 +} 1.61 + 1.62 +########################### kill_by_name ################################ 1.63 +# like killall, only without permissionproblems, kills the process whose 1.64 +# name is given as parameter 1.65 +######################################################################## 1.66 +kill_by_name() 1.67 +{ 1.68 + echo "Killing all $1" 1.69 + 1.70 + for PID in `Ps | grep "$1" | grep -v grep | \ 1.71 + sed -e "s/^[ ]*//g" -e "s/[ ].*//"` 1.72 + do 1.73 + Kill $PID 1.74 + done 1.75 +} 1.76 + 1.77 +kill_the_rest() 1.78 +{ 1.79 +i=0 1.80 +while [ $i -lt $1 ] 1.81 +do 1.82 + kill_by_name nssqa 1.83 + kill_by_name selfserv 1.84 + kill_by_name strsclnt 1.85 + kill_by_name all.sh 1.86 + kill_by_name sdr.sh 1.87 + kill_by_name ssl.sh 1.88 + kill_by_name smime.sh 1.89 + i=`expr $i + 1` 1.90 +done 1.91 +} 1.92 + 1.93 +nt_warning() 1.94 +{ 1.95 +os_name=`uname -s` 1.96 +case $os_name in 1.97 + CYGWIN*|WIN*|Win*) 1.98 + echo 1.99 + echo 1.100 + echo 1.101 + echo "Another Windows problem... If you have not already done so" 1.102 + echo "after this script completes, please reboot, and log in as" 1.103 + echo "user svbld again" 1.104 + echo 1.105 + echo 1.106 + echo 1.107 + ;; 1.108 +esac 1.109 +} 1.110 + 1.111 +nt_warning 1.112 +case $1 in 1.113 + -all) 1.114 + for w in tommy booboo kentuckyderby galileo shame axilla columbus \ 1.115 + smarch charm hp64 biggayal orville kwyjibo hbombaix raven \ 1.116 + jordan hornet phaedrus louie box dbldog huey washer dryer \ 1.117 + shabadoo trex bummer compaqtor jellyfish sjsu 1.118 + do 1.119 + echo $w 1.120 + ping $w && rsh $w '/u/sonmi/bin/qaclean' 1.121 + done 1.122 + 1.123 + ;; 1.124 + ?*) 1.125 + rsh $1 '/u/sonmi/bin/qaclean' 1.126 + exit 1.127 + ;; 1.128 +esac 1.129 + 1.130 +uname -a 1.131 +echo 1.132 + 1.133 +if [ -f ${TMP}/nssqa.* ] 1.134 +then 1.135 + echo "nssqa seems to be running ${TMP}/nssqa.*" 1.136 + #cat ${TMP}/nssqa.* 1.137 + NSSQA_PID=`ls ${TMP}/nssqa.* | sed -e 's/[^.]*\.//'` 1.138 + Kill $NSSQA_PID 1.139 + rm ${TMP}/nssqa.* 1.140 +fi 1.141 + 1.142 +kill_the_rest 3 1.143 +ls -l ${TMP}/nsstmp.* 1.144 +rm ${TMP}/nsstmp.* 2>/dev/null 1.145 +rm ${TMP}/certutilout.* 2>/dev/null 1.146 +rm ${TMP}/Pk12* 1.147 +nt_warning