Não é possível capturar a saída do programa

4

Eu iniciei um programa escrito usando o Node.js e o iniciei usando o canal de lançamento no arquivo de log e o enviei para o background.

A meio caminho rodando o programa saiu sem nenhum erro tanto no console quanto no log, eu até chequei a mensagem / var / log / e não conseguia descobrir o que havia de errado com o programa.

Existe alguma maneira melhor de capturar o erro / mensagem que causa a saída?

O script atual de execução está seguindo:

./run_all_with_logs >> logs/my.log &
    
por d4v1dv00 26.09.2011 / 09:42

2 respostas

3

Vamos melhorar o P.T.:s responder um pouco.

O formulário básico envia toda a saída normal para o arquivo de log.

./run_all_with_logs >> logs/my.log &

Se redirecionarmos os erros, poderemos registrar os erros e as impressões normais.

./run_all_with_logs 2>&1 >> logs/my.log &

Se, em seguida, executarmos o comando em um subshell, também poderemos imprimir o código de saída.

(./run_all_with_logs ; echo "Final Exit Code: $?" ) 2>&1  >> logs/my.log &
    
por 26.09.2011 / 17:17
5

O código de saída deve informar se o processo foi eliminado por um sinal externo ou se saiu com um código de saída interno (esperançosamente útil) por conta própria.

Você pode expandir um pouco sua linha de comando para incluir o código de saída (veja outras questões para decodificar este código de saída):

(./run_all_with_logs ; echo "Final Exit Code: $?" ) >> logs/my.log &

Você pode tornar isso um pouco mais elaborado (decodificando o status de saída, etc.).

    
por 26.09.2011 / 10:15