É possível enviar dados para o shell de outro pseudo-terminal?

6

Esta imagem mostra como funcionam os pseudo-terminais:

Seeutiverdoisemuladoresdeterminalabertos,possoenviarastring"Hello" do primeiro emulador de terminal para o segundo emulador de terminal:

echo "Hello" > /dev/pts/1

Quando este comando é executado, a string "Hello" se deslocará do lado escravo do segundo pseudo-terminal para o lado mestre do segundo pseudo-terminal e será exibida no segundo emulador de terminal.

Agora é possível enviar dados na direção oposta, isto é, enviar dados para o shell em vez do emulador de terminal (ou o processo que o shell está executando)?

    
por John 15.05.2017 / 23:09

1 resposta

0

Cada processo tem 3 "descritores de arquivos" padrão

0 is stdin  (standart input)
1 is stdout (standart output)
2 is stderr (standart error output)

Você precisa encontrar o PID do processo do shell e, em seguida, você pode fazer o seguinte:

echo "test" > /proc/{your_shell_pid}/fd/1

Isso imprimirá o teste na saída padrão do processo do shell

    
por 06.09.2017 / 13:19