Excelente explicacao do conrado. Acrescentando um exemplo prático do comando exec que me foi extremamente útil há um tempo atrás.
Eu precisava colocar um usuário dentro de um script interativo ao fazer logon via ssh, após terminar o script o usuário era desconectado da sessao. O usuário não poderia em momento algum ter acesso ao shell, so deveria executar o script e sair. Beleza, coloquei o script dentro do .bashrc para executar no logon, so que tinha um detalhe, o usuário poderia apertar control-c a qualquer momento e sair do script e com isso ter acesso ao shell, o que eu realmente nao queria. Solução? coloquei o script utilizando o exec antes. Tipo -> exec /bin/myscript. Pronto! Agora caso o usuário fosse espertinho e digitasse control-c ele simplesmente era expulso do logon, já que meu script com o "exec" na frente deixou de ser um processo filho do bash, mas passou a ser o real (único) shell do usuário. Abs! --- Em qua, 11/11/09, Conrado Pinto Rebessi <conradopi...@gmail.com> escreveu: De: Conrado Pinto Rebessi <conradopi...@gmail.com> Assunto: Re: [lpi] comado exec Para: lpi@yahoogrupos.com.br Data: Quarta-feira, 11 de Novembro de 2009, 22:58 Da pagina de manual do bash(1), lah pela linha 3150... exec [-cl] [-a name] [command [arguments]] If command is specified, it replaces the shell. No new process is created traduzindo: Se um comando é especificado, ele toma o lugar do shell. Não é criado um novo processo. Basicamente, vc tem q pensar em gerencia de processos. O normal, qdo vc chama um comando, o kernel "forka" (termo bonito, nao?) um novo processo, ou seja, o bash q vc tava usando continua existindo e eh criado um novo processo. Qdo vc usa o exec, o processo q vc chamou toma o lugar do bash. Olha o exemplo: Sem exec: $ pstree -p | grep -B 1 pstree |-bash(5593) -+-bash(5620) | `-pstree(5619) conr...@conrado- tablet:~$ ksh $ pstree -p | grep -B 1 pstree |-bash(5593) ---ksh(5621) -+-grep(5623) | `-pstree(5622) Com exec: $ pstree -p | grep -B 1 pstree |-bash(5563) -+-grep(5581) | `-pstree(5580) $ exec ksh $ pstree -p | grep -B 1 pstree |-ksh(5563)- +-grep(5584) | `-pstree(5583) Ajudei? []'s Conrado 2009/11/10 Wairisson <wgom...@yahoo. com.br> alguém pode me dar uma descrição mais tangente do uso prático do comando exec ??? Desde já obrigado a tdos ! -- Conrado Pinto Rebessi conradopinto@ gmail.com Linux Registered User #179496 http://counter. li.org - Get Counted! |_|0|_| |_|_|0| |0|0|0| ____________________________________________________________________________________ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com