This UIC contains system-management programs for RSX-11M V3.2 Ray Van Tassle Motorola 1301 E. Algonquin Rd. Room 4135 Schaumburg, Ill. (312)-576-6017 We have found that a set of programs to help you manage the system, especialy a multi-user development system, helps things incredibly. First of all, if you do not yet have CCL, get it!!!!!! ********************************************************************* editor's note: to get CCL on your system please reference Jim Downward's uic [344,*]. I agree with Ray, it is a most useful enhancement to your RSX-11M system. *********************************************************************** We have an 11/70 with over 75 users and 15-20 terminals, doing program development. The disks are an RP-04 and RP-06. Our terminals are VT-100's and Hazeltine 1500's (if you also have Hazeltines, I feel sorry for you, too. That is the biggest piece of junk I have run across in quite some time.) I have put up most of the KMS-FUSION stuff, but I use it for the features it gives, not for accounting. These programs here should all work even if you don't put the KMS stuff up, but the changes to HEL help a lot. We do not have an operator, and there is only privileged user--the system manager. And only two us us know the system manager password. I put in SYSLOG (KMS-FUSION), but I mainly use it to count user QIO's, and to keep the double-word time. I fixed RMDEMO (DEC's copy for 3.2) to use this time counter to display the system up time (RMD starts up on a dedicated CRT when the system boots up). I also use the idle-time count to compute and display the system percent idle time, which gets displayed on line 1 of the RMD screen. Since we lost the rotating lights with the remote front panel, this % display is a handy crutch to see how loaded the system is. OPERATOR THINGS --------------- We do not have an operator, and there is a need for regular non-privileged users to be able to do certain restricted privileged things, so they don't have to bug me to do it. These are things like changing the spooler form number for the LA-120, log off terminals, etc. I set this up by having a special user "OPERATOR", who is privileged, but gets a program run (MONOPR) when he logs on. This program spawns "@OPERATOR.CMD/-LI", which I have asking questions, so that anyone can do them, but only those things which I have set up the command file for them to do. Needless to say, the password for OPERATOR is known to everyone. "MAKOPRMON.CMD" makes this program. I have this user set up to log-in as slave & a task (MONXXX) to be run when HEL exit's. This is in HEL & RSE (KMS-FUSION). If you don't have the mod's to HEL, you might want to fix up your HELLO to do the same thing (putting in the KMS stuff is better, though). TERMINAL TIME-OUT (TT.KGB) -------------------------- One feature that IAS had that we missed was that IAS would time out the PDS prompt and log off the user after a while. Since we have many more users than terminals, this would take care of someone who walked away from his CRT and didn't come back for an hour, but of course, if you just did a PIP, it wouldn't time out. I liked this featue so much that I added a program to do almost the same thing, called "TT.KGB". If a terminal is idle for 9 minutes, it blasts out a message asking if anyone is still there. In another 30 seconds, it sends out another one, and 30 seconds after that, forces a BYE (via RMC). I use the QIO count that SYSLOG (KMS-FUSION) keeps in the terminal UCB to decide if it is idle or not. Every 10 seconds, TT.KGB checks all the terminal UCB's to see if any task has been doing I/O. If not, it looks to see if that terminal has a task running that is not blocked (presumably any program that is running will either do I/o or be non-blocked). This time is long enough that it doesn't screw anyone that is thinking (unless they fall asleep), and it takes care quite well of logging off an idle terminal, so much so that now many of the usere will start up a long indirect command file (compile, assemble, TKB, etc) and just walk away, knowing that they will be safely logged off when it is all done. When I do this myself, I also set my terminal to slave, so that nobody can start typing in things until I do get logged off. MAKTTKGB.CMD creates this. RMC is a (KMS-FUSION) thing. FRC (from DEC) will do an equivalent thing. TIME-SCHEDULED SYSTEM TASKS --------------------------- It is handy to have MCR commands kicked off periodically. For example, you might want to clean-up your disks (delete .LST files, etc) once a day, fire off programs at midnight, etc. It is really yuchy to do this by running the task with a /RSI, and anyway you can't give it an MCR command line if you do that. Therefore, I wrote RECUR, a program which does just that. In your startup.cmd, run RECUR with a /RSI of 5 minutes or so. See my sample STARTUP.CMD. RECUR is driven off a file "RECURRENT.CMD", from which it gets the MCR command, the time-of-day and day-of-the-week when the command should be executed. It keeps track of the last time it ran in another file, so that it does things properly. However, the is a slight problem!!! MCR has a minor bug, in that it always chases down the redirect chain, to see if the physical terminal is logged on. And RECUR's TI: is the console device CO0: (all /RSI tasks have their Ti: set to CO0:), which is re-directed to TT0:, which may or may not be logged on. MCRDIS needs to be fixed so that it doesn't chase down the re-direct chain if the TI: is the console. The fix is the SLP file "MCRDIS1.SLP". This leads to another minor problem. We now have MCRDIS looking at the terminal UCB for CO0: for the LOGIN UIC, CURRENT UIC, & LOGGED-ON bit. You have to ZAP the UCB to set these up. The file ZAPRASX11M.CMD does this. You just have to find the right addresses. They root address is the tag ".CO0", login uic is a negative offset, and the other two are a positive offset. RECUR.CMD builds it. See the listing for more details. SETPRV ------ It is handy to be able to do privileged operations without having to log off & log back into a privileged account. The task SETPRV does this, asking for the "magic word", and if you type in the right one, it will do one MCR command with the terminal privileged, then set it back to non-priv. If you want to stay priv, this command would be: ABO SETPRV. If you need to do 2 or 3, make it "@MCR". RMD --- The fixes to RMD are also here. The RMDRIV is the one that does the one huge QIO (DEC/JAN 81 Dispatch), with a fix. UFD --- I have each user as an entire group by himself. So that user's can seperate their stuff however they choose amoung UIC's, I put a fix into UFD, which will let a non-priv user create a UFD on his LOGIN SY:, with the same group-number and a higher member-number as his LOGIN UIC. For example: User DR1:[21,1] can create DR1:[21,2] but not DR0:[21,anything] User DR1:[25,100] can create DR1:[25,105] but not DR1:[25,10] User DR0:[300,377] cannot create any UFD's This is UFD.COR CKP --- This is a KMS program (fixed by me for virgin 3.2) to checkpoint out all stopped tasks. I set it up to run every 5 minutes. This is seperately on this tape. MVI --- Tells you who has mounted what volumes. FRC --- Force MCR command line to a terminal. RMC --- A KMS-FUSION program to do the same thing.