From: CSBVAX::MRGATE!@KL.SRI.Com,@wiscvm.wisc.edu:MCGUIRE@GRIN2.BITNET@SMTP 23-JUL-1987 19:30 To: EVERHART Subj: RE: Running multiple interactive programs under VMS Received: from wiscvm.wisc.edu by KL.SRI.COM with TCP; Thu 23 Jul 87 13:16:16-PDT Received: from GRIN2.BITNET by wiscvm.wisc.edu ; Thu, 23 Jul 87 15:14:15 CDT Date: Thu, 23 Jul 87 15:15 CDT From: Subject: RE: Running multiple interactive programs under VMS To: info-vax@kl.sri.com X-Original-To: info-vax@kl.sri.com, MCGUIRE > Date: Sun, 19 Jul 87 10:14:21 PDT > From: KARNEY%PPC.MFENET@nmfecc.arpa > Subject: Running multiple interactive programs under VMS > > Is it possible to run n > 1 vanilla programs (e.g., standard FORTRAN > programs) and bounce between them? I want to fire up program[i], give it > some input, leave it running, fire up program[i+1], etc. Program[i] then > runs until it needs to do terminal I/O. Then it should optionally (a) > hang, (b) notify the user that program[i] needs the terminal, (c) if it only > needs to do output, go ahead and do the output (mingling such output with > that of other programs), (d) again if it is only output, buffer the output > in some suitable place. I should be able to reconnect the terminal to > program[i], do the required I/O and then hop to another program. Here's one way to do this using DCL. Program i=1: Type SET PROMPT="1 ". Fire up program 1. Program i=2..n: Press , interrupting all current applications, which gives you a prompt. Type SPAWN/NOWAIT/PROMPT="i " to start process i. While you have multiple subprocesses running, they'll all prompt you in whatever order they queued the request. At prompts 1..i-1, type CONTINUE. Press at prompt i, until that's the only one prompting you. Now, your current applications are all running where they left off, and you have a new process. Terminate a process by typing LOGOUT to it. Be a bit careful how you terminate processes. Each process is a child of the process you used to create it. When you delete a process, all its descendants are also deleted. So type SHOW PROCESS/SUBPROCESSES to see whether the process you're about to log out has any children. I have simplified this explanation somewhat. You'll learn the oddities by doing it. Good luck! Ed P.S. Grateful thanks to the folks here on info-vax who taught me how to do this.