On Sep 15, 2015, at 2:32 PM, Johnny Billquist <bqt
at softjar.se> wrote:
On 2015-09-15 20:28, Paul_Koning at
Dell.com wrote:
...
Or RSTS/E people... where it's even neater because you can do stuff like "give
me a log file" interactively -- it was created for the benefit of batch but it is
part of the kernel machinery for talking to a process ("job"), so it isn't
only batch.
Well, my comment was specifically about the non-need for a $JOB. In RSX, batch will be
very unimpressed if you skip the $JOB.
But now you got me a bit curious. So you can essentially ask for a log file of whatever
terminal that is doing something, at any point in time?
Yes:
$ open/logfile/time foo.log
$.sys/s
RSTS P10.1-L RSTS/E V10.1 status at 15-Sep-15, 02:46 PM Up: 1:08
Job Who Where What Size State Run-Time Pri/RB RTS
1 1,211 KB0 SYSTAT 17/32K RN Lck 0.0 -8/6 ...RSX
2 1,2 Det PBS... 19/32K SL 0.0 -8/6 ...RSX
3 1,2 Det EVTLOG 18/32K SL 0.0 -8/6 ...RSX
$.close/log
$ type foo.log
15-Sep-15 02:46:03 PM $.sys/s
15-Sep-15 02:46:08 PM RSTS P10.1-L RSTS/E V10.1 status at 15-Sep-15, 02:46 PM Up
: 1:08
15-Sep-15 02:46:08 PM Job Who Where What Size State Run-Time Pri/RB
RTS
15-Sep-15 02:46:08 PM 1 1,211 KB0 SYSTAT 17/32K RN Lck 0.0 -8/6
...RSX
15-Sep-15 02:46:08 PM 2 1,2 Det PBS... 19/32K SL 0.0 -8/6
...RSX
15-Sep-15 02:46:08 PM 3 1,2 Det EVTLOG 18/32K SL 0.0 -8/6
...RSX
15-Sep-15 02:46:08 PM $.close/log
The way this works is that the log file (and current command file level) are owned and
handled by the kernel. The indirect command processor just opens the files and hands them
to the kernel. If a command file is open, the kernel directs terminal reads to that file.
If a log file is open, it sends terminal output to the log. Also, if requested, it
prefixes a timestamp. These are called "permanent files" because they
aren't closed at program exit the way regular file descriptors are.
So most of the work of batch jobs (and command files) is in the kernel. That's about
the only way to make it transparent, since RSTS doesn't have supervisor mode in which
to hide DCL concurrent with the running process, as VMS does.
paul