[613] | 1 | ZJOB1 ;ISF/RWF - GT.M Job Exam ;06/08/2004 17:15
|
---|
| 2 | ;;8.0;KERNEL;**275**;Jul 10, 1995;Build 2
|
---|
| 3 | Q
|
---|
| 4 | ; =============
|
---|
| 5 | ; Reserved Symbols, Current Symbol Table Cleared and Replaced with Target Symbols
|
---|
| 6 | ; zz1z - Index
|
---|
| 7 | ; zz2z - Variable set syntax
|
---|
| 8 | ; zz3z - Target Job ID
|
---|
| 9 | LOAD ; Load variables from target process into current partition
|
---|
| 10 | N zz1z,zz2z,zz3z,zz4z
|
---|
| 11 | s zz3z=PID
|
---|
| 12 | K (zz1z,zz2z,zz3z)
|
---|
| 13 | F zz1z=1:1 S zz2z=$G(^XUTL("XUSYS",zz3z,"JE","V",zz1z)) Q:zz2z="" D
|
---|
| 14 | . ; Overly Long Strings may not be complete...
|
---|
| 15 | . ; Better to throw away some data than to crash
|
---|
| 16 | . ; But save if you can
|
---|
| 17 | . I zz2z'["=" Q:$G(zz4z)="" S zz2z=zz4z_"="""_@zz4z_zz2z
|
---|
| 18 | . ;
|
---|
| 19 | . I zz2z["="""&($E(zz2z,$L(zz2z))'="""") S zz2z=zz2z_""""
|
---|
| 20 | . S @zz2z
|
---|
| 21 | . S zz4z=$P(zz2z,"=")
|
---|
| 22 | .Q
|
---|
| 23 | Q
|
---|
| 24 | ; =============
|
---|
| 25 | ;^XUTL("XUSYS",538971386,"JE","V",42)="ZTSK=0"
|
---|
| 26 | UNIX ; gtmsendint shell script should be save in $gtm_dist
|
---|
| 27 | ; INSTALL Note:
|
---|
| 28 | ; When loading this into the $gtm_dist location, remember to
|
---|
| 29 | ; chmod 555 $gtm_dist/gtmsendint
|
---|
| 30 | ; so that the privs will be available for all.
|
---|
| 31 | ; Everything between the lines goes into gtmsendint
|
---|
| 32 | ; VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
|
---|
| 33 | ; -------------------------------------------------------
|
---|
| 34 | ;#!/bin/tcsh -f
|
---|
| 35 | ; ## Swith the CASE construct on the number of arguments, 0, 1, or more...
|
---|
| 36 | ; switch ($#)
|
---|
| 37 | ; ## Case of NO Arguments, Interrupt everyone who runs mumps.
|
---|
| 38 | ; case 0:
|
---|
| 39 | ; foreach proc (`ps --no-headers -o pid= -C mumps`)
|
---|
| 40 | ; $gtm_dist/mupip intrpt $proc >>&/tmp/gtmsendint.$$.log
|
---|
| 41 | ; end
|
---|
| 42 | ; breaksw
|
---|
| 43 | ; ## One Argument Form to exclude the first argument (current Job $J)
|
---|
| 44 | ; ## and process everyone else and then do the current $J to signal
|
---|
| 45 | ; ## this completion of the task.
|
---|
| 46 | ; case 1:
|
---|
| 47 | ; foreach proc (`ps --no-headers -o pid= -C mumps`)
|
---|
| 48 | ; if ($proc != $1) $gtm_dist/mupip intrpt $proc >>&/tmp/gtmsendint.$$.log
|
---|
| 49 | ; end
|
---|
| 50 | ; $gtm_dist/mupip intrpt $1 >>&/tmp/gtmsendint.$$.log
|
---|
| 51 | ; breaksw
|
---|
| 52 | ; ## Else Clause
|
---|
| 53 | ; ## This list of arguments (greater than 1) is the target(s) followed by the
|
---|
| 54 | ; ## current $J of this process to signal completion of the process
|
---|
| 55 | ; default:
|
---|
| 56 | ; foreach proc ($*)
|
---|
| 57 | ; $gtm_dist/mupip intrpt $proc >>&/tmp/gtmsendint.$$.log
|
---|
| 58 | ; end
|
---|
| 59 | ; breaksw
|
---|
| 60 | ; endsw
|
---|
| 61 | ; -------------------------------------------------------
|
---|
| 62 | ; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
---|
| 63 | VMS ; GTMSENDINT.COM DCL code should be saved in GTM$DIST
|
---|
| 64 | ;$! This is the file to process requests MUPIP INTRPT
|
---|
| 65 | ;$! Hides the MUPIP output
|
---|
| 66 | ;$ if p1 .eqs. "" then $exit
|
---|
| 67 | ;$ define sys$output NL:
|
---|
| 68 | ;$ mupip INTRPT /ID='p1'
|
---|
| 69 | ;$ if p2 .eqs. "" then goto end
|
---|
| 70 | ;$ mupip INTRPT /ID='p2'
|
---|
| 71 | ;$end:
|
---|
| 72 | ;$ deassign sys$output
|
---|
| 73 | ;$exit
|
---|