/security/nss/tests/qaclean

http://github.com/zpao/v8monkey · Shell · 144 lines · 108 code · 13 blank · 23 comment · 10 complexity · 7cef1c4d64b1e2779bd0382c45e407e3 MD5 · raw file

  1. #! /bin/sh
  2. ########################################################################
  3. #
  4. # /u/sonmi/bin/qaclean
  5. #
  6. # is supposed to clean up after a "hanging" QA
  7. #
  8. # 1) see if there is a lockfile
  9. # if yes:
  10. # 1a) kill the process of the lockfile and if possible it's children
  11. # 1b) rm the lockfile
  12. # 2) kill selfservers
  13. # 3) clean up old tmp files
  14. #
  15. ########################################################################
  16. if [ -z "$TMP" ]
  17. then
  18. if [ -z "$TEMP" ]
  19. then
  20. TMP="/tmp"
  21. else
  22. TMP=$TEMP
  23. fi
  24. fi
  25. if [ ! -w "$TMP" ]
  26. then
  27. echo "Can't write to tmp directory $TMP - exiting"
  28. echo "Can't write to tmp directory $TMP - exiting" >&2
  29. exit 1
  30. fi
  31. ########################### Ps #########################################
  32. # platform specific ps
  33. ########################################################################
  34. Ps()
  35. {
  36. if [ `uname -s` = "SunOS" ]
  37. then
  38. /usr/5bin/ps -e
  39. else
  40. ps -e
  41. fi
  42. }
  43. Kill()
  44. {
  45. if [ "$1" = "$$" ]
  46. then
  47. return
  48. fi
  49. echo "Killing PID $1"
  50. kill $1
  51. sleep 1
  52. kill -9 $1 2>/dev/null
  53. }
  54. ########################### kill_by_name ################################
  55. # like killall, only without permissionproblems, kills the process whose
  56. # name is given as parameter
  57. ########################################################################
  58. kill_by_name()
  59. {
  60. echo "Killing all $1"
  61. for PID in `Ps | grep "$1" | grep -v grep | \
  62. sed -e "s/^[ ]*//g" -e "s/[ ].*//"`
  63. do
  64. Kill $PID
  65. done
  66. }
  67. kill_the_rest()
  68. {
  69. i=0
  70. while [ $i -lt $1 ]
  71. do
  72. kill_by_name nssqa
  73. kill_by_name selfserv
  74. kill_by_name strsclnt
  75. kill_by_name all.sh
  76. kill_by_name sdr.sh
  77. kill_by_name ssl.sh
  78. kill_by_name smime.sh
  79. i=`expr $i + 1`
  80. done
  81. }
  82. nt_warning()
  83. {
  84. os_name=`uname -s`
  85. case $os_name in
  86. CYGWIN*|WIN*|Win*)
  87. echo
  88. echo
  89. echo
  90. echo "Another Windows problem... If you have not already done so"
  91. echo "after this script completes, please reboot, and log in as"
  92. echo "user svbld again"
  93. echo
  94. echo
  95. echo
  96. ;;
  97. esac
  98. }
  99. nt_warning
  100. case $1 in
  101. -all)
  102. for w in tommy booboo kentuckyderby galileo shame axilla columbus \
  103. smarch charm hp64 biggayal orville kwyjibo hbombaix raven \
  104. jordan hornet phaedrus louie box dbldog huey washer dryer \
  105. shabadoo trex bummer compaqtor jellyfish sjsu
  106. do
  107. echo $w
  108. ping $w && rsh $w '/u/sonmi/bin/qaclean'
  109. done
  110. ;;
  111. ?*)
  112. rsh $1 '/u/sonmi/bin/qaclean'
  113. exit
  114. ;;
  115. esac
  116. uname -a
  117. echo
  118. if [ -f ${TMP}/nssqa.* ]
  119. then
  120. echo "nssqa seems to be running ${TMP}/nssqa.*"
  121. #cat ${TMP}/nssqa.*
  122. NSSQA_PID=`ls ${TMP}/nssqa.* | sed -e 's/[^.]*\.//'`
  123. Kill $NSSQA_PID
  124. rm ${TMP}/nssqa.*
  125. fi
  126. kill_the_rest 3
  127. ls -l ${TMP}/nsstmp.*
  128. rm ${TMP}/nsstmp.* 2>/dev/null
  129. rm ${TMP}/certutilout.* 2>/dev/null
  130. rm ${TMP}/Pk12*
  131. nt_warning