7

Пытаюсь отследить apache2. Это команды, которые я пытаюсь выполнить.

ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace >> trace.txt

Я старался

(ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace ) >> trace.txt

или же

ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace | xargs >> trace.txt

4 ответа4

10

Есть какая-то конкретная причина, по которой вы не можете использовать флаг -o?

ps auxw | grep sbin/apache | awk '{print " -p " $2}' | xargs strace -o /tmp/trace.txt

Кроме того, вы должны использовать некоторые трюки с регулярными выражениями, чтобы не перехватить ваш процесс grep в списке процессов.

ps auxw | grep 'sbin/[a]pache' ....

Также помните, что в конкретном случае Apache,

  1. Apache (обычно) многопроцессный, хотите ли вы получить родителя или одного из детей? Я бы добавил флаг '-f' в strace, который (среди прочего) вставляет PID в вывод.
  2. Вы можете получить идентификатор основного родительского процесса из файла PID.

    например, strace -o /tmp//trace.txt -f $ (</path/to/apache.pid)

Итак, это вопрос, который вы задаете ... но что вы пытаетесь сделать? Отладка при запуске? Зафиксировать дочерний процесс, обслуживающий запрос? Также посмотрите на флаг -X для apache.

1
 ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace 2>> trace.txt
0

Вы также можете направить стандарт в файл следующим образом:

(time /bin/ls) &> /tmp/time.txt

или для отладки PHP-скрипта:

(strace php /path/to/www/script.php) &> strace_output.txt
0

В общем случае strace "может быть перенаправлен в файл", но записывает свой вывод в stderr (смешивая его со stderr программы), так что это будет

strace progname 2>my_strace_output

Если вы хотите, чтобы "весь вывод" шел в файл:

strace progname 1>my_strace_output 2>&1

если вы хотите иметь возможность "grep" это:

strace progname 2>&1 | grep ...

однако следует помнить, что если вы выполняете grep и отправляете его в файл, происходит большая буферизация: https://unix.stackexchange.com/questions/338330/grepping-strace-output-gets-hard

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .