Como acessar o Stdout / Stderr de um processo separado?

2

Estou tendo um script php-cli em execução (desanexado) em segundo plano.

Existe uma maneira de anexar o Stdout / Stderr para ver a saída do aplicativo?

    
por ufk 28.11.2009 / 20:42

3 respostas

3

Você provavelmente pode fazer isso com gdb . Eu escrevi sobre o processo em uma resposta a um questão vagamente relacionada.

    
por 28.11.2009 / 20:48
2

Eu gosto de usar strace, é um pouco menos intimidante que o GDB.

strace -s 100000 -e write=1  -e trace=write -p $PID 2>&1 | \
   sed 's/^write(1, //;t;d'
    
por 31.01.2011 / 16:26
1

dupx é a solução completa que implementa o que @quack está se referindo:

Dupx is a simple utility to remap files of an already running program. Shells like Bash allow easy input/output/error redirection at the time the program is started using >, /tmp/stdout will redirect output of echo to /tmp/stdout. Standard shells however do not provide the capability of remapping (redirecting) of output (or input, or error) for an already started process. Dupx tries to address this problem by using dup(2) system call from inside gdb(1). Dupx is currently implemented as a simple shell wrapper around a gdb script.
    
por 17.01.2011 / 07:47

Tags