Como posso executar um processo em um terminal de outro terminal?

1

Eu tenho 5 processos em execução a partir de um terminal ( T1 ). Todos eles estão sendo executados em segundo plano, mas geram muitos resultados.

Agora do outro terminal ( T2 ), eu quero matar um deles usando o comando KILL pid . Então, depois de 60 secs, eu quero reiniciar o mesmo processo (isso obviamente terá um pid diferente).

Meu script seria parecido com

KILL 1524
sleep 60
myProcess

O problema é que depois disso, o terminal T2 também se torna inutilizável, devido às saídas do processo. Se eu quiser fazer a mesma coisa novamente, terei que iniciar outro terminal. É possível algo que forçaria o processo a começar em T1 ?

    
por Sonu Mishra 21.07.2016 / 22:38

1 resposta

3

Então, você pode fazer a saída aparecer no outro terminal - embora eu duvide que você realmente queira. Para fazer isso:

  1. Encontre o tty do terminal para o qual você gostaria que a saída fosse enviada; A maneira mais fácil é executar tty . Isso deve imprimir algo como: /dev/pts/42 .

  2. No outro terminal, execute: command > /dev/pts/42 & . Se você quiser fazer stderr e stdout: command > /dev/pts/42 2>&1 &

Isso funcionará apenas para o mesmo usuário (devido a permissões) e não redirecionará a entrada (e o redirecionamento de entrada não funcionará realmente, já que você estará lutando contra o shell por ele).

Uma solução muito melhor é redirecionar a saída para um arquivo ( command > outfile ), então você pode usar less , tail , etc. para assisti-lo. Ou use screen / tmux para executar várias sessões dentro de um terminal.

    
por 21.07.2016 / 22:58