Força o comando shell a retornar [fechado]

3

Estou executando um comando (não faz parte da distribuição padrão) que às vezes não retorna o cursor. Ou seja, tenho que pressionar para entrar.

O problema é que, se eu quiser fazê-lo a partir de um programa C ++, o sistema de funções pode não retornar.

Existe uma alternativa para executar o programa em segundo plano e forçá-lo a retornar?

    
por Bob 11.03.2014 / 22:10

3 respostas

1

Se você conhece o PID do seu processo de execução, você pode fazer o que quiser.

Exemplo

No terminal # 1: Seu processo falso está interrompido:

$ cat

No terminal # 2: Obtenha o PID deste processo:

$ pidof cat
1243

Envie alguma entrada para este STDIN do PID:

$ echo xxx > /proc/1243/fd/0
$

Agora de volta ao terminal # 1: O comando cat agora mostra a seguinte saída:

$ cat 
xxx

Você pode combinar o echo + pidof em um comando:

$ echo xxx > /proc/$(pidof cat)/fd/0
    
por 11.03.2014 / 23:40
1

Você pode canalizar apenas echo depois disso:

mycommand <args> | echo

Isso deve forçá-lo a retornar ao prompt após a execução.

    
por 11.03.2014 / 22:30
-2

Você pode fazer isso?

mycommand &
    
por 12.03.2014 / 00:45

Tags