{ Kill the VFS_CONTROL process by forcing it to $exit, } { thereby causing its exit handlers to be invoked. } %constinteger controller UIC = x'00020003' %conststring(15) controller name = "VFS_CONTROL" %constinteger SS ThirdParty = x'207C' %recordformat IOSB fm(%short status, bytes, %integer extra) %include "SYSINC:JPI.INC" %systemroutinespec waitfr(%integer flag) %systemintegerfnspec forcex(%integername PID, %integer prcnam, reason) %externalstring(127)%fnspec sysmess(%integer which) %begin %ownrecord(JPI fm) i name, i PID, i UIC, term = 0 %string(15) proc name %integer wild PID = -1, PID, UIC, status %short name length i name_length = 15; i name_code = JPI prcnam i name_buff addr = addr(proc name) + 1 i name_retaddr = addr(name length) i PID_length = 4; i PID_code = JPI PID i PID_buff addr = addr(PID) i PID_retaddr = 0 i UIC_length = 4; i UIC_code = JPI UIC i UIC_buff addr = addr(UIC) i UIC_retaddr = 0 %cycle status = getJPI(0, wild PID, record(0), i name, record(0), 0, 0) %exit %if status & 1 = 0 waitfr(0) length(proc name) = name length %if UIC = controller UIC %and proc name = controller name %start ! printstring("Found "); phex(PID) ! printstring(", name """) ! printstring(proc name) ! printstring(""" (length ") ! write(name length, 0) ! print symbol(')') ! newline status = forcex(PID, 0, SS ThirdParty) printstring("Kill "); printstring(controller name) printstring(": "); printstring(sysmess(status)) newline %stop %finish %repeat printstring("Kill "); printstring(controller name) printstring(" fails -- process not found") newline %end %of %program