shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Enviar comando de um shell para o outro


From: Arkanon
Subject: Re: [shell-script] Enviar comando de um shell para o outro
Date: Fri, 1 Jul 2011 15:54:10 -0300

Em 30 de junho de 2011 17:52, Guilherme Andrade <
address@hidden> escreveu:

 **
> Não é isso que preciso, na verdade ftp foi só um exemplo, preciso que o
>
> shell 1 fique em modo listen e de outro shell redirecionar a saida para o
> shell 1.
>
> To vendo agora se da certo com named pipe, vou postando qualquer avanço.
>
Exitem algumas ferramentas para acesso completamente remoto, interativo e
controlavel de tty's. conspy e screen sao as que me vem a memoria agora.

Um exemplo com screen:

Quero deixar um arquivo gigante compactando num servidor mas preciso fechar
o terminal onde iniciei o processo, ou nao quero que seja interrompido por
falta de luz na sala do terminal, que me faria perder a conexao com o
servidor.

Claro, é possível deixar o processo rodando em background com nohup. Mas
dessa forma, uma vez interrompida a conexao do terminal com o servidor, eu
perco o controle "fino" sobre o que esta acontecendo "lá". E eu quero a
qualquer momento reconectar no servidor, e ver o programa rodando como se eu
nunca tivesse desconectado.

O exemplo abaixo é de um comando que nao precisa ser interativo. Mas pense
num lynx, ou num IM texto, ou qq outro aplicativo para console interativo.

Então, no terminal onde vou executar o processo:

   screen -l -L
   file=algum_arquivao.iso
   time kgb -9 $file.kgb $file
   ^A^D (sai to ambiente criado pelo screen)

Para ver que as coisas acontecendo em background:

   /bin/ps ho start,time -C kgb
   watch -n1 "ps ho start,time -C kgb;echo;ls -laF --block-size M
--full-time"

Fecho (na estupidez mesmo...) o terminal onde iniciei o processo.
Veja que o screen eh persistente. Mesmo que voce nao saia dele antes, com
^A^D, ele ficara no ar, a espera de alguma reconexao.
Para voltar a a ter acesso aquele terminal virtual criado pelo screen e
abandonado:

   screen -r

Se houver apenas um screen rodando, seu processo sera trazido "a tona". Se
houver mais de um, serao listados, voce tera que especificar um deles.
Se o screen nao tiver sido abandonado, ou tiver sido reconectado (o que da
praticamente na mesma), é possivel ve-lo também em varios outros terminais
com:

   screen -x [pid do screen aberto em foreground]

[]

-- 
(o_  @arkanon <http://twitter.com/arkanon>  (Twitter)     __o
//\   address@hidden   _`\<,
V_/_      www.lsd.org.br  (_)/(_)
---------------------------------


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]