aoss está impedindo o registro de arquivos - comandos de argumento de registro

1

Estou usando um aplicativo que requer recursos . Os resultados precisam ser anexados a um arquivo. Quando escrevo estes comandos, o arquivo está sempre vazio:

aoss multimon -a DTMF | tee test.txt
aoss multimon -a DTMF > test.txt
aoss multimon -a DTMF >> test.txt

Eu acredito que o problema é que o log de arquivos está apontando para aoss , em vez de multimon -a DTMF , porque o último é realmente um argumento para o primeiro. Existe uma maneira de registrar o comando argument e, ainda assim, tornar o aplicativo executável? ( multimon -a DTMF é um comando do terminal usando um aplicativo chamado multimon para decodificação de DTMF)

    
por Ahmed Farid 09.04.2013 / 19:55

2 respostas

0

Você pode colocar o comando multimon inteiro em um script de shell e executá-lo com aoss , ou iniciar outro shell dentro de aoss :

(shell 1) $ aoss bash
(shell 2) $ multimon -a DTMF > test.txt
(shell 2) $ exit
(shell 1) $
    
por 09.04.2013 / 20:43
0

A maneira como o aoss (um script de shell muito pequeno) funciona é pré-carregando uma biblioteca especial usando LD_PRELOAD . Você pode definir essa variável manualmente também:

export LD_PRELOAD='/usr/$LIB/libaoss.so'
multimon --etc --etc --etc > test.txt

I believe the problem is that the file logging is pointing to aoss, rather than multimon -a DTMF, because the latter is actually an argument to the first.

Essa não é a causa. Quando o processo X abre ou fecha arquivos (por exemplo, configura o redirecionamento) e inicia o processo Y, o novo processo herda os arquivos recém-abertos. Em outras palavras, o shell apenas configura o redirecionamento e executa o comando aoss multimon... fornecido, que herda a saída redirecionada do shell. Da mesma forma, quando aoss faz o seu trabalho e finalmente executa multimon -a DTMF , o processo multimon herda os mesmos redirecionamentos de aoss .

    
por 09.04.2013 / 21:40