Есть какая-то конкретная причина, по которой вы не можете использовать флаг -o?
ps auxw | grep sbin/apache | awk '{print " -p " $2}' | xargs strace -o /tmp/trace.txt
Кроме того, вы должны использовать некоторые трюки с регулярными выражениями, чтобы не перехватить ваш процесс grep в списке процессов.
ps auxw | grep 'sbin/[a]pache' ....
Также помните, что в конкретном случае Apache,
- Apache (обычно) многопроцессный, хотите ли вы получить родителя или одного из детей? Я бы добавил флаг '-f' в strace, который (среди прочего) вставляет PID в вывод.
Вы можете получить идентификатор основного родительского процесса из файла PID.
например, strace -o /tmp//trace.txt -f $ (</path/to/apache.pid)
Итак, это вопрос, который вы задаете ... но что вы пытаетесь сделать? Отладка при запуске? Зафиксировать дочерний процесс, обслуживающий запрос? Также посмотрите на флаг -X для apache.