home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / stone20.zip / KILL.CMD < prev    next >
OS/2 REXX Batch file  |  2002-01-15  |  5KB  |  182 lines

  1. /* An OS/2 REXX script to send a signal to a running EMX program based on */
  2.  
  3. /* signal name or number and pid . This script requires EMXKILL.EXE in the */
  4.  
  5. /* current directory or in the path. */
  6.  
  7. PARSE ARG inarg 
  8.  
  9. /* Get paramters. */
  10.  
  11. PARSE VALUE inarg WITH signalNumber pid
  12.  
  13. /* say 'signalNumber:' signalNumber 'pid:' pid */
  14.  
  15. if (pid ='') & (DATATYPE(signalNumber,'W') = 1) then
  16.  
  17.  DO
  18.  
  19.  pid = signalNumber
  20.  
  21.  signalNumber = '-KILL'
  22.  
  23.  END
  24.  
  25. /* Convert signalNumber to upper case. */
  26.  
  27. signalNumber = translate(signalNumber)
  28.  
  29. /* Display help if requested. */
  30.  
  31. if ( (signalNumber = "HELP") | (signalNumber = "-H") | (signalNumber = "?") ) then signal USAGE 
  32.  
  33. /* Handle usage problems. */
  34.  
  35. if (arg() = 0) then signal USAGE if (pid = '') then signal USAGE 
  36.  
  37. /* Translate signal name to number if needed. */
  38.  
  39. /* NOTE: Values taken from-EMX-sys/signal.h */
  40.  
  41. SELECT WHEN (signalNumber = "SIGHUP") | (signalNumber = "HUP") | (signalNumber = "-HUP") THEN signalNumber = 1
  42.  
  43.  
  44. /* Hangup */
  45.  
  46.  WHEN (signalNumber = "SIGINT") | (signalNumber = "INT") | (signalNumber = "-INT" THEN signalNumber = 2
  47.  
  48. /* Interrupt (Ctrl-C) */
  49.  
  50. WHEN (signalNumber = "SIGQUIT") | (signalNumber = "QUIT") | (signalNumber = "-QUIT") THEN signalNumber = 3 
  51.  
  52. /* Quit */ 
  53.  
  54. WHEN (signalNumber = "SIGILL") | (signalNumber = "ILL") | (signalNumber = "-ILL") THEN signalNumber = 4 
  55.  
  56. / * Illegal instruct */
  57.  
  58. WHEN (signalNumber = "SIGTRAP") | (signalNumber = "TRAP") | (signalNumber = "-TRAP") THEN signalNumber = 5 
  59.  
  60. /* Single step (debugging) */
  61.  
  62. WHEN (signalNumber = "SIGABRT") | (signalNumber = "ABORT") | (signalNumber = "-ABORT") THEN signalNumber = 6 
  63.  
  64. / * abort () */ 
  65.  
  66. WHEN (signalNumber = "SIGEMT") | (signalNumber = "EMT") | (signalNumber = "-EMT") THEN signalNumber = 7
  67.  
  68.  
  69. /* EMT instruction */
  70.  
  71. WHEN (signalNumber = "SIGFPE") | (signalNumber = "FPE") | (signalNumber = "-FPE") THEN signalNumber = 8 
  72.  
  73. /*Floating point */ WHEN (signalNumber = "SIGKILL") | (signalNumber = "KILL") | (signalNumber = "-KILL") THEN signalNumber = 9 
  74.  
  75. /* Kill process */ 
  76.  
  77. WHEN (signalNumber = "SIGBUS") | (signalNumber = "BUS") | (signalNumber = "-BUS") THEN signalNumber = 10
  78.  
  79. /* Bus error */
  80.  
  81. WHEN (signalNumber ="SIGSEGV") | (signalNumb) = "SEGV") | (signalNumber = "-SEGV") THEN signalNumber = 11
  82.  
  83. /* Segmentation fault */ 
  84.  
  85. WHEN (signalNumber = "SIGSYS") | (signalNumber = "SYS") | (signalNumber = "-SYS") THEN signalNumber = 12 
  86.  
  87.  
  88. /* Invalid argument to system call */
  89.  
  90.  
  91. WHEN (signalNumber ="SIGPIPE") | (signal) = "PIPE") | (signalNumber = "-PIPE") THEN signalNumber = 13 
  92.  
  93. /* Broken pipe */
  94.  
  95. WHEN (signalNumber = "SIGALRM") | (signalNumber = "ALARM") | (signalNumber = "-ALARM") THEN signalNumber = 14
  96.  
  97.  
  98. /* Alarm */
  99.  
  100. WHEN (signalNumber = "SIGTERM"| (signalNumber ="TERM") | (signalNumber = "-TERM")-THEN signalNumber = 15
  101.  
  102. /* Termination, process killed */
  103.  
  104.  
  105. WHEN (signalNumber = "SIGUSR1") | (signalNumber = "USR1") | (signalNumber = "-USR1") THEN signalNumber = 16
  106.  
  107. /* User-defined signal #1 */
  108.  
  109.  
  110. WHEN (signalNumber = "SIGUSR2" | (signalNumber="USR2") | (signalNumber = "-USR2") THEN signalNumber = 17
  111.  
  112. /* User-defined-signal #2 */ 
  113.  
  114. WHEN (signalNumber = "SIGCHLD") | (signalNumber = "CHILD") | (signalNumber = "-CHILD") THEN signalNumber = 18
  115.  
  116. /* Death of a child process */
  117.  
  118. WHEN (signalNumber = "SIGBREAK" | (signalNumber="BREAK") | (signalNumber = "-BREAK") THEN signalNumber = 21 
  119.  
  120. /* Break (Ctrl-Break) */
  121.  
  122. OTHERWISE
  123.  
  124. /* Assume the signal number was passed directly. */
  125.  
  126.  
  127. END
  128.  
  129.  
  130. /* Send the signal. */
  131.  
  132.  
  133. '@emxkill' signalNumber pid RETURN 
  134.  
  135. USAGE:SAYSAY "Usage: kill [signalName|signalNumber] pid'SAYSAY' 
  136.  
  137. If signalName-or-signalNumber is omitted, send SIGKILL .
  138.  
  139. 'SAYSAY ' .... Next , list of Signals 'SAY'@pause'SAYSAY " SignalName Number Description"SAY " ------------------------ ------ -- ------------------------------ " 
  140.  
  141. SAY " SIGHUP HUP -HUP 1 Hangup"
  142.  
  143. SAY " SIGINT INT -INT 2 Interrupt (Ctrl-C)"
  144.  
  145. SAY " SIGQUIT QUIT -QUIT 3 Quit"
  146.  
  147. SAY " SIGILL ILL -ILL 4 Illegal instruction"
  148.  
  149. SAY " SIGTRAP TRAP -TRAP 5 Single step " (debugging )
  150.  
  151. SAY " SIGABRT "
  152.  
  153. SAY " SIGEMT EMT -EMT 7 EMT instruction"
  154.  
  155. SAY " SIGFPE FPE -FPE 8 Floating point"
  156.  
  157. SAY " SIGKILL KILL -KILL 9 Kill process"
  158.  
  159. SAY " SIGBUS BUS -BUS 10 Bus error"
  160.  
  161.  
  162. SAY " SIGSEGV SEGV -SEGV 11 Segmentation-fault"
  163.  
  164. SAY " SIGSYS SYS -SYS 12 Invalid argument-to-system-call"
  165.  
  166. SAY " SIGPIPE PIPE -PIPE 13 Broken pipe"
  167.  
  168. SAY " SIGALRM ALARM -ALARM 14 Alarm"
  169.  
  170. SAY " SIGTERM TERM -TERM 15 Termination, process-killed"
  171.  
  172. SAY" SIGUSR1 USR1 -USR1 16 User-defined signal #1"
  173.  
  174. SAY " SIGUSR2 USR2 -USR2 17 User-defined signal #2"
  175.  
  176. SAY " SIGCHLD CHILD -CHILD 18 Death of a child process"
  177.  
  178. SAY " SIGBREAK BREAK -BREAK 21 Break (Ctrl-Break)"
  179.  
  180. EXIT ERROR:SAYSAY "An ERROR has occured."
  181.  
  182. SAYEXIT