check_exec_guard.sh
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:1k
源码类别:

生物技术

开发平台:

C/C++

  1. #! /bin/sh
  2. # $Id: check_exec_guard.sh,v 1000.1 2004/02/12 21:52:32 gouriano Exp $
  3. # Author:  Vladimir Ivanov, NCBI 
  4. #
  5. ###########################################################################
  6. #
  7. # Auxiliary time-guard script for run check command script
  8. #
  9. # Usage:
  10. #    check_exec_guard.sh <timeout> <pid>
  11. #
  12. #    timeout - maximal time of execution process with "pid" in seconds
  13. # Note:
  14. #    If process with "pid" still execute after "timeout" seconds, that 
  15. #    it will be killed and exit code from this script will be 1. 
  16. #    Otherwise exit code 0 will be returned to parent shell.
  17. #
  18. ###########################################################################
  19. # Parameters
  20. timeout=$1
  21. pid=$2
  22. sleep_time=5
  23. # Wait 
  24. while [ $timeout -gt 0 ]; do
  25.   kill -0 $pid > /dev/null 2>&1  ||  exit 0
  26.   if [ $timeout -lt  $sleep_time ]; then
  27.     sleep_time=$timeout
  28.   fi
  29.   timeout="`expr $timeout - $sleep_time`"
  30.   sleep $sleep_time
  31. done
  32. # Time out, kill the process
  33. echo
  34. echo "Maximum execution time of $1 seconds is exceeded"
  35. echo
  36. kill $pid > /dev/null 2>&1
  37. sleep $sleep_time
  38. kill -9 $pid > /dev/null 2>&1
  39. exit 1
  40. #  ===========================================================================
  41. #  PRODUCTION $Log: check_exec_guard.sh,v $
  42. #  PRODUCTION Revision 1000.1  2004/02/12 21:52:32  gouriano
  43. #  PRODUCTION PRODUCTION: UPGRADED [CORE_001] Dev-tree R1.7
  44. #  PRODUCTION
  45. #  ===========================================================================