KARNEY%PPC.MFENET@NMFECC.ARPA (07/19/87)
One of the most objectionable features of VMS is how awkward it is to run several interactive programs simultaneously. This seems to be solved principally by one of two techiques: * SPAWNing a new subprocess -- this is allowed within several utilities (DEBUG, MAIL...) * Running a program in a subprocess, and ATTACHing to the parent when you want to do something else -- this is a common technique for running editors like Emacs and EVE. Unfortunately, each technique involves special VMS code within the utility to do the spawning/attatching. This prompts the following question: 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. I'm aware of two solutions: * A commercial package WINDOWS (Clyde Data Systems). I have not seen this in operation. This has the disadvantage that it costs money. * Start up multiple subprocesses in Gnu Emacs (v 17) and use the PTY drivers to talk to them. This has the disadvantage that the I/O happens through Emacs which can deal with straight text OK, but can't manage graphics, etc. Also version 18 of Emacs lost PTY support and can only do inferior mailbox communication with subprocesses. It seems to me that it should be possible using the Carosso PTY driver to write a supervisor program that can manage several programs running in subprocesses and thus do what I want. Anyone know of such a beast? Charles Karney PHONE: 609/682-2607 MFENET: Karney@PPC.MFENET ARPANET: Karney%PPC.MFENET@NMFECC.ARPA BITNET: Karney%PPC.MFENET@ANLVMS.BITNET CC: INFO-VAX@SRI-KL.ARPA KARNEY
jkw@a.UUCP (Jay Wooten) (07/20/87)
> Is it possible to run n > 1 vanilla programs (e.g., standard FORTRAN > programs) and bounce between them? Another solution (which also costs $) is to hook your terminal to an ethernet terminal server (LAT). This allows you to switch back and forth between multiple sessions very easily. Jay Wooten Los Alamos National Lab ARPA: jkw@lanl.gov
MCGUIRE@GRIN2.BITNET (07/23/87)
> 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 <Ctrl Y>, 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 <Return> 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.
DHASKIN@CLARKU.BITNET (Denis W. Haskin, Manager, Technical Services) (07/24/87)
>From: Jay Wooten <beta!a!jkw@hc.dspo.gov> > >> Is it possible to run n > 1 vanilla programs (e.g., standard FORTRAN >> programs) and bounce between them? > > Another solution (which also costs $) is to hook your terminal to an > ethernet terminal server (LAT). This allows you to switch back and forth > between multiple sessions very easily. How about running the vanillas in subprocesses? Seems to me it might be possible, although whenever I do a lot of work like that my input and output streams always seem to merge into one torrent... <sigh>... It should be possible without resorting to a server; remember that it ain't just the server you need; if you're not yet networked there's the VAX ethernet interface, the licenses, the software, the network medium... % Denis W. Haskin Manager, Technical Services % % ----------------------------------------------------------------------- % % DHASKIN@CLARKU.BITNET Office of Information Systems (617)793-7193 % % Clark University 950 Main Street Worcester MA 01610 %
kenw@noah.arc.CDN (Ken Wallewein) (07/26/87)
SPAWN/NOWAIT/PROMPT=1,etc... Almost as good as RSX! The process hangs around, does it's I/O from the terminal, and doesn't tie it up! I've been using SPAWN/NOWAIT/INPUT=NL:/COMMAND=... for a long time. Somehow I missed this one. I shall not forget it. Only problem, I seem to hace dificulty with using command line recall. If I use ^H^E together with my arrow keys, it sort of works. /kenw