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

Responder a