3.16 Today, we had a job "runaway" with the CPU 100% active, but no disk activity. Your typical "loop forever" programming construct. Faced with rebooting the system in order to regain control (I couldn't even get a ":" on the console), I decided to try the Control-A at the console which worked. At the "=" I entered ABORTJOB #Jn, which to my surprise actually worked! So, what other commands are available from the "=" prompt?

Actually, there are two questions in one here. For the first, from Jeff Vance, CI Architect:

Here is the current list of control-A commands:

ABORTIO

ABORTJOB

LOGOFF

LOGON

RECALL

REPLY

SHUTDOWN

I don't know where this is stated in our documentation, although online HELP does show the control-A syntax for commands that are legal in a control-A environment (namely, running on PROGEN's stack).

For the implied second question, how to abort a runaway job/process, from Goetz Neumann, also from HP:

If you have a terminal with nobody logged on yet, it should be possible to use a :HELLO MANAGER.SYS;PRI=BS to get a session that can preempt the runaway JOB. This should work since the HELLO handling process (JSMAIN) is running in the BS queue and should be able to preempt any "normal" 100% CS-queue looping job/session. Of course this kind of logon should be used for diagnostic and troubleshooting or CPU-lightweight tasks only, otherwise you can cause a system hang.

Another method many people use is running Glancexl permanently and "pushing" runaway jobs into the ES queue. If you have the Workload Manager product you can ALTPROC (if you can get sufficient CPU - try the HELLO …;PRI=BS trick) the runaway process to a "zero-cpu" workgroup, i.e. a group with maxcpupercent = 0.

Be aware that for a job/session to successfully terminate (react on an ABORTJOB) it actually needs to get to the CPU. So first "starve it", then "shoot it", and then "feed it" so it dies.