Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!math.lsa.umich.edu!srvr1!umich!terminator!dabo.ifs.umich.edu!rees From: rees@dabo.ifs.umich.edu (Jim Rees) Newsgroups: comp.sys.apollo Subject: Re: start_sh ( was Re: start_csh ) Message-ID: <1990Jun9.022616.21538@terminator.cc.umich.edu> Date: 9 Jun 90 02:26:16 GMT References: <144@evtprp0b.UUCP> <1647@ns-mx.uiowa.edu> <25852@netnews.upenn.edu> Sender: usenet@terminator.cc.umich.edu (usenet news) Reply-To: rees@citi.umich.edu (Jim Rees) Distribution: na Organization: University of Michigan IFS Project Lines: 14 start_* are all the same program. What it does, approximately, is strip off the 'start_' on arg 0 then look in /bin for a program by that name. Then it sets $SHELL to /bin/(shellname) and execs the shell, with arg 0 set to -(shellname). The shells look at arg0, and if it starts with '-', they run their respective startup file (.profile, .login, etc). So the main function of start_foo is to set arg0 to -foo so you get your login startup file executed. It's not needed if you log in the normal (Unix) way, with /bin/login, which sets arg0 for you. It's mostly useful if your login shell was started by something like the DM that doesn't do this.