2016-02-12 5 views
1

Я хочу отслеживать все запущенные процессы с использованием strace, а когда процесс заканчивается, вывод strace должен быть отправлен в файл.Мониторинг всего работающего процесса с использованием strace в сценарии оболочки

И как найти каждый прогон ПИД-регулятора. Я также хочу включить имя процесса в выходной файл.

+1

«Я хочу контролировать _all_ запущенные процессы, используя' strace' ... »Нет, вы этого не делаете. В самом деле. Если только потому, что запуск 'strace' создает новый процесс, который вы затем попытаетесь контролировать, который начнет другой процесс, который ... Но есть и другие существенные причины, это и плохая идея. Возможно, вам придется уточнить свое определение того, что вам нужно, чтобы выполнить бит. – twalberg

ответ

0
$ sudo strace -p 1725 -o firefox_trace.txt 

$ tail -f firefox_trace.txt 

1725 будет ПИД от proccess вы хотите контролировать (вы можете найти PID с "п.с. -C FireFox-бен", для светлячок в примере)

И firefox_trace.txt бы быть выходным файлом!

Способ получения должен состоять в том, чтобы найти каждый запущенный PID proc и использовать команду для записи их в выходной файл!


Учитывая doc, -p PID

Присоединить к процессу с идентификатором процесса PID и начать отслеживание. Трассировка может быть прекращена в любое время с помощью сигнала прерывания клавиатуры ( CTRL-C). strace ответит, отсоединившись от процесса трассировки , оставив его (их) продолжать. Множественные -p опции могут использоваться для присоединения к 32 процессам в дополнение к команде (что необязательно, если задана хотя бы одна опция -p).

+0

Как найти каждый запущенный PID proc. Я также хочу включить имя процесса в выходной файл. –

+0

@ R.Anu Не могу проверить прямо сейчас, но я считаю, что «ps aux» должен предоставить вам полный список procs ... Затем попробуйте отрезать его с помощью регулярного выражения или чего-то еще, чтобы получить список PID proc. –

0

Использование -o для хранения вывода в файл, или 2>&1 перенаправить стандартную ошибку на выходе, так что вы можете фильтровать (grep) или перенаправить его в файл (> file).

Чтобы контролировать процесс, не зная его PID, но имя, вы можете использовать команду pgrep, например.

strace -p $(pgrep command) -o file.out 

, где command это ваше имя процесса (например, php, Chrome и т.д.).

Чтобы узнать больше о параметрах, отметьте man strace.

Смежные вопросы