[comp.sys.dec] DEC/Shell and SYS$SYLOGIN clash - help

mkhaw@teknowledge-vaxc.UUCP (10/28/87)

We have a VMS 4.5 system on which some users want to run DEC/Shell as
their default CLI, while most users want to run DCL.  The problem is
how to make the system not try to execute SYS$SYLOGIN when a DEC/Shell
user logs in.  Anyone know a solution?  We don't want to get rid of
SYS$SYLOGIN since it does a lot of useful things for DCL users, but it
makes DEC/Shell barf and therefore fail to execute the user's private
shell startup file (.profile)

Thanks,
Mike Khaw
-- 
internet:  mkhaw@teknowledge-vaxc.arpa
usenet:	   {uunet|sun|ucbvax|decwrl|uw-beaver}!mkhaw%teknowledge-vaxc.arpa
USnail:	   Teknowledge Inc, 1850 Embarcadero Rd, POB 10119, Palo Alto, CA 94303

mxc@ecsvax.UUCP (Mark Cooperstein) (10/29/87)

In article <18342@teknowledge-vaxc.ARPA>, mkhaw@teknowledge-vaxc.ARPA (Mike Khaw) writes:
> We have a VMS 4.5 system on which some users want to run DEC/Shell as
> their default CLI, while most users want to run DCL.  The problem is
> how to make the system not try to execute SYS$SYLOGIN when a DEC/Shell
> user logs in.  Anyone know a solution?  We don't want to get rid of
> SYS$SYLOGIN since it does a lot of useful things for DCL users, but it
> makes DEC/Shell barf and therefore fail to execute the user's private
> shell startup file (.profile)
> 
> Thanks,
> Mike Khaw
> -- 


  
     Your problem is very simple... Go into the authorize utility, and
set all DEC Shell users lgicmd to be something (or nothing!) other then 
mgr$login (which is a logical that points to syslogin.com).  Our
DEC Shell users have lgicmd set to .PROFILE  (which is what dec
suggests).  They have a file called .PROFILE in their sys$login
directory (naturally!), with Shell commands.  All of this is modeled 
somewhat after unix I suppose.  
     Hope this helps!

              Mark Cooperstein
                   NCSU School of Veterinary Medicine
                   Raleigh  NC

ted@blia.BLI.COM (Ted Marshall) (10/29/87)

My memory on this is a little hazy and I am unfamiliar with the DEC/Shell,
but this should work:

The problem has come up before with users who wanted to have MCR as their
default CLI. The trick is to define SYS$SYLOGIN without specifying a file type.
For example, "DEFINE/SYSTEM SYS$SYLOGIN SYS$MANAGER:SYLOGIN" (not SYS$MANAGER:
SYLOGIN.COM). Each CLI then supplies its default command file type. DCL users
get SYLOGIN.COM and MCR users get SYLOGIN.xxx (damn if I can remember what it
is).

Anyway, I would expect that DEC/Shell will have its own default file type,
maybe null (i.e. SYLOGIN.).

Hope this helps.

-- 
Ted Marshall       ...!ucbvax!mtxinu!blia!ted <or> mtxinu!blia!ted@Berkeley.EDU
Britton Lee, Inc., 14600 Winchester Blvd, Los Gatos, Ca 95030     (408)378-7000
The opinions expressed above are those of the poster and not his employer.

awp8101@ritcv.UUCP (Andrew W. Potter) (10/29/87)

>> how to make the system not try to execute SYS$SYLOGIN when a DEC/Shell
>> user logs in.  Anyone know a solution?  We don't want to get rid of
>> SYS$SYLOGIN since it does a lot of useful things for DCL users, but it
>> makes DEC/Shell barf and therefore fail to execute the user's private
>> shell startup file (.profile)
>> 
>set all DEC Shell users lgicmd to be something (or nothing!) other then 
>mgr$login (which is a logical that points to syslogin.com).  Our
>DEC Shell users have lgicmd set to .PROFILE  (which is what dec
>suggests).  They have a file called .PROFILE in their sys$login
>directory (naturally!), with Shell commands.  All of this is modeled 
>somewhat after unix I suppose.  

Wrong:

	The behavior of LOGINOUT is to attempt to run the procedure
pointed to by the logical name SYS$SYLOGIN and THEN run the procedure
specified in the authorize field LGICMD.  (This changed in VMS from V2 to
V3). If SYS$SYLOGIN does not translate then LOGINOUT goes directly to
the LGICMD specified procedure.  IF the UAF field LGICMD is blank
as the default record is normally then LOGINOUT does a simple @LOGIN
(or equivilant for the DEC shell I would assume)  In our 2 CLI shop
(DCL and MCR) this results in either LOGIN.COM or LOGIN.CMD being
run depending on the CLI. (.CMD is what MCR wants).  We have
the logical name SYS$SYLOGIN ( $ DEFINE/EXEC natch) pointing to
the file SYS$MANAGER:SYLOGIN.  Note: NO .COM extension on the
logical name.  we then have SYLOGIN.COM (DCL) and SYLOGIN.CMD (MCR) flavors
of our system login routines.

I assume a similar action can happen with DECshell. SYLOGIN.PROFILE maybe?
If not. I would  set up a SYLOGIN.COM that has a command that will do
2 actions depending on whether it is running DCL or SHELL. If it
is a DCL command then it would be a No operation command.  If it was
under DECshell then it would run some shell script and exit. 

- Andrew W. Potter
- Rochester Institute of Technology

mkhaw@teknowledge-vaxc.UUCP (10/31/87)

Several people have posted the correct solution:

The logical symbol SYS$SYLOGIN should not translate to a filename that
has an extension (filetype?) on it; i.e., it should be

	define sys$sylogin sys$manager:sylogin

So, for DCL users, you have sys$manager:sylogin.com, for MCR users, 
sys$manager:sylogin.cmd, and for DEC/Shell, sys$manager:sylogin. (there's
a dot on the end of that name).

Similarly, the UAF file should have LGICMD = LOGIN (with no extension).
The DEC/Shell documentation DOES point out that this works fine if your
sys$login:login. file says ". .profile" (assuming you want to use .profile
as your startup dot file).

Thanks all,
Mike Khaw
-- 
internet:  mkhaw@teknowledge-vaxc.arpa
usenet:	   {uunet|sun|ucbvax|decwrl|uw-beaver}!mkhaw%teknowledge-vaxc.arpa
USnail:	   Teknowledge Inc, 1850 Embarcadero Rd, POB 10119, Palo Alto, CA 94303

kvc@nrcvax.UUCP (Kevin Carosso) (11/03/87)

The solution is to make sure your definition of SYS$SYLOGIN does
NOT specify a file type.  For example:

	DEFINE/SYSTEM/EXEC SYS$SYLOGIN SYS$MANAGER:SYLOGIN

If the user specifies DCL as his CLI at login time, DCL will open the
file SYS$SYLOGIN with a default file specification of ".COM", and
so will open and read SYS$MANAGER:SYLOGIN.COM

The Shell does not specify a default file specification with a file
type, and so will open and read SYS$MANAGER:SYLOGIN.

You should then create SYLOGIN.COM with appropriate DCL commands and
SYLOGIN. with appropriate Shell commands.  I assume the same would work
for MCR with SYLOGIN.CMD.

Users can also have LOGIN.COM and LOGIN. files if the LGICMD field
of their entry in SYSUAF does not specify the file type.

	/Kevin Carosso            kvc@nrcvax.uucp
	 Network Research Co.