Alguma razão em particular pela qual você não pode usar o sinalizador -o?
ps auxw | grep sbin/apache | awk '{print " -p " $2}' | xargs strace -o /tmp/trace.txt
Além disso, você deve usar algum truque de regex para não capturar seu processo do grep na lista de processos.
ps auxw | grep 'sbin/[a]pache' ....
Lembre-se também que, no caso específico do apache,
- O Apache é (geralmente) multiprocessado, você deseja obter o pai ou um dos filhos? Eu adicionaria o sinalizador '-f' para strace, que (entre outras coisas) insere o PID na saída.
-
Você pode obter o ID do processo pai principal do arquivo PID.
por exemplo. strace -o /tmp//trace.txt -f $ (< /path/to/apache.pid)
Então, essa é a pergunta que você está fazendo ... mas o que você está tentando fazer? Depurar na inicialização? strace um processo filho atendendo a uma solicitação? Veja também o sinalizador -X no apache.