thanx, that explains it. -mandeep On Mon, 2005-01-10 at 13:53, karthick.sundararajan@xxxxxxxxx wrote: > Hi, > > The exec shell built-in is like the exec group of system calls > (generally referred to as the exec system call). Before we use the exec > system call, we do a fork. The code is generally like this: > > int main() > { > int pid=fork(); > > if (0 == pid) > { > // Child process > // exec system call can be used here > } > else if (-1 == pid) > { > // Error condition > // Exit from here > } > else > { > // Parent process > // exec not called here > // wait for pid > } > exit(0); > } > > Note that the child process is getting created by fork. The exec call on > the other hand replaces the current process with the process that has > been passed as argument to it. Thus the "parent" process (if we can use > that term) does not exist anymore. > > The exec shell built-in also works in the same way. It replaces the > currently executing process with it's argument. So when we exit from the > new process, there is no caller we can return to and so the shell > closes. To escape from this, open a new sheel in which you execute the > command. > > A similar effect can be seen when we source a script that uses the > "exit" shell built-in. > > Cheers, > Karthick S. > > > -----Original Message----- > From: kernelnewbies-bounce@xxxxxxxxxxxx > [mailto:kernelnewbies-bounce@xxxxxxxxxxxx] On Behalf Of Mandeep Sandhu > Sent: Monday, January 10, 2005 13:10 > To: kernelnewbies > Subject: Re: how is "exec" executed by a shell? > > > On Sun, 2005-01-09 at 07:47, Jim Bauer wrote: > > On Saturday 08 January 2005 16:10, Jaydeep Chokshi wrote: > > > > > > Now My confusion is as follows, > > > > > > $exit > > > > > > doin this shell exits right, How come shell shold exit because 1st > > > shell forked and had child process to execute the 'exit' call and > > > thats why exit terminates but how this affect the shell to > > > terminate, I mean it is child process who executed the 'exit' call > > > so why then shell exits. > > > > There is no fork() call. exit is a shell builtin. Running it, causes > > the shell to terminate. > is exec also a shell built-in? > > > > -- > > Kernelnewbies: Help each other learn about the Linux kernel. > > Archive: http://mail.nl.linux.org/kernelnewbies/ > > FAQ: http://kernelnewbies.org/faq/ > > > > -- > Kernelnewbies: Help each other learn about the Linux kernel. > Archive: http://mail.nl.linux.org/kernelnewbies/ > FAQ: http://kernelnewbies.org/faq/ > > > > > Confidentiality Notice > > The information contained in this electronic message and any attachments to this message are intended > for the exclusive use of the addressee(s) and may contain confidential or privileged information. If > you are not the intended recipient, please notify the sender at Wipro or Mailadmin@xxxxxxxxx immediately > and destroy all copies of this message and any attachments. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/