Temporariamente controlando um shell

2

No computador do meu escritório (executando o Scientific Linux 6.3) eu tenho várias janelas executando alguns processos em emuladores de terminal separados ( /dev/pts/ ). Costumo me conectar ao meu computador do escritório com iSSH do meu iPad, mas só consigo ver os resultados dos programas que foram gravados em um arquivo e não consigo ver o que cada terminal está mostrando ou controlar os terminais.

Eu quero poder mudar temporariamente o controle de um terminal para o meu terminal iSSH do iPad, ver os resultados, executar novos comandos (no meu terminal do meu iPad) e deixar o programa rodar no computador do meu escritório e retornar para o meu terminal iSSH, para que eu possa verificar outros terminais ou simplesmente sair. Como uso o 3G a maior parte do tempo para me conectar ao meu iPad, não quero usar nenhum método gráfico depenente que seja muito lento.

Até onde eu entendi, algo como reptyr parece mover permanentemente o controle de um processo de um terminal para outro, eu não vi ninguém falar (ou perguntar) sobre devolver o controle ao terminal original. Quero devolvê-lo ao terminal original depois de terminar.

Eu realmente aprecio qualquer sugestão ou ajuda. Agradecemos antecipadamente

    
por makhlaghi 26.12.2012 / 17:28

1 resposta

8

Eu acredito que você precisa apenas executar os comandos originais dentro de uma sessão screen .

Em seguida, você pode desconectar (a tela continua em execução e manter o "terminal virtual" exibido corretamente) e reconectar a partir de outra sessão (ou seja, do seu iPad ou de outro computador ou da mesma computador quando você voltar a ele).

Há muito mais coisas que o screen pode fazer também; por exemplo, permita que um colega de trabalho "esgueire-se" para a sessão da sua tela de corrida enquanto você o usa, ou quando você estiver longe dele, permitindo que várias pessoas espreitem no mesmo "terminal".

Em poucas palavras:

no seu terminal principal, no host A, como usuário ORIGINALUSER:

screen
command (ex: vi /tmp/file)
CTRL+a d # which is 'CTRL' and 'a' at the same time, and then 'd'. This will 'd'etach from the screen session, while screen itself still runs! (and inside it the commands, shell and any still running invoked command, still run)

em outro terminal (ou o mesmo):

#log in the original machine (host A) as the same user ORIGINALUSER, and then:
screen -r   #will reattach to the latest running screen from that user. 

Se houver mais de uma tela para reconectar, consulte a página de manual da tela ou na rede. Útil também se você não puder reconectar: existem maneiras de "forçar" a reatá-lo.

Uma vez realmente terminado: você acabou de sair do shell correndo dentro da tela. Isso também terminará o comando screen.

Enquanto na tela: ctrl + A é especial e permite que você envie comandos para a tela. Experimente: ctrl+A ?

    
por 26.12.2012 / 17:37

Tags