LINUX.ORG.RU

strace не берет потомков apache2

 ,


0

1

делаю:

maestro@meniac:~$ sudo strace -f  -p 6189 -o apache.log
Process 6189 attached - interrupt to quit

в файл apache.log попадают только события по родительскому Апачу, хотя события у потомков (6 шт.) должны быть однозначно (обновляю страницу на localhost-е)

ЧЯДНТ?

Ответ на: комментарий от MinasFilm

Хм. Может только вновь созданные? Не зря же в man расписывается, что потомок может анекоторое время не трассироваться после старта.

ziemin ★★
()
Ответ на: комментарий от anonymous

ок, как отлоггировать все обращения к диску для процесса и всей своры его потомков?
тем более что создавать/закрывать он тащемта их может динамически

MinasFilm
() автор топика
Ответ на: комментарий от MinasFilm

Кстати у меня трейсит:

sudo strace -f  -p 3956 -o /tmp/apache.log
[sudo] password for serge: 
Process 3956 attached with 9 threads - interrupt to quit
^CProcess 3956 detached
Process 3971 detached
Process 3986 detached
Process 3987 detached
Process 3988 detached
Process 3991 detached
Process 7482 detached
Process 7484 detached
Process 7485 detached

Правда процесс это audacious. В логах вызовы с pid в начале.

ziemin ★★
()
Ответ на: комментарий от ziemin

а в чем может быть прикол не-цепляемости apache2?

MinasFilm
() автор топика
Ответ на: комментарий от MinasFilm

ок, как отлоггировать все обращения к диску для процесса и всей своры его потомков?

Легче всего запустить мастер процесс под strace.

anonymous
()
Ответ на: комментарий от ziemin

htop

Лицоладонь. В настройках включи «Display threads in a different color»

хромиум тоже кучу трейсит.

Потоки он трейсит, потоки, милок.

anonymous
()
Ответ на: комментарий от MinasFilm

а вообще, исходный вопрос по-прежнему актуальный

Да, тяжело, наверное с дислексией жить. Мои соболезнования.

anonymous
()
Ответ на: комментарий от anonymous

ты, наверное, потому такой умный, что пенис очень большой и денег много а еще красивый очень

я не могу запустить служебный демон под strace-ом
да и идеологически это неверно

MinasFilm
() автор топика
Ответ на: комментарий от MinasFilm

Кого ты слушаешь. Это же школьники. Короче трейсится apache. Специально залез на vps. Только трейсить надо не корневой процесс, а вложенный в него. в htop всё видно (t нажми).

А разгадка в том, что корневой от root запущен, а настоящие от www-data.

ziemin ★★
()
Последнее исправление: ziemin (всего исправлений: 1)
Ответ на: комментарий от MinasFilm

я не могу запустить служебный демон под strace-ом

Не можешь или не умеешь?

Запасной вариант:

strace -f -p `pgrep -of httpd` -p $(pgrep -d ' -p' -P `pgrep -of httpd`)

Новые воркеры подхватятся автоматом.

Много знаю потому что в свое время не попрошайничал на форумах, но тупо читал маны и гуглил. А ты так и будешь ключи подавать, хе-хе.

anonymous
()
Ответ на: комментарий от ziemin

Только трейсить надо не корневой процесс, а вложенный в него.

Браво! Ты сейчас так обдристался, что даже ТС пальму схватил.

anonymous
()
Ответ на: комментарий от ziemin

Только трейсить надо не корневой процесс, а вложенный в него. в htop всё видно (t нажми)

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

да и вообще - почему, черт возьми, strace не цепляется к родителю и потомкам?..

MinasFilm
() автор топика
Ответ на: комментарий от anonymous

а ты включи мозг и подумай, могу ли я шутки для убить апач, обслуживающий n вебсайтов, ради того чтобы запустить его из-под strace

Запасной вариант:

результат этого баш-дзена:

maestro@meniac:~$ strace -f -p `pgrep -of httpd` -p $(pgrep -d ' -p' -P `pgrep -of httpd`) -o apache.log
pgrep: option requires an argument -- 'P'
strace: Invalid process id: -p
strace: Usage:: command not found

MinasFilm
() автор топика
Ответ на: комментарий от MinasFilm

могу ли я шутки для убить апач, обслуживающий n вебсайтов

Судя по твоей компетенции n = 1, с 0.001 rps. Поэтому да, можешь.

pgrep: option requires an argument — 'P'

Очевидно, нет процессов с названием httpd. Наверно они называются по другому. Интересно как же?

anonymous
()
Ответ на: комментарий от anonymous

я хочу решить задачу для общего случая - когда дочерних у апача может быть n процессов
(кстати - так понимаю, что после первого запуска strace - новые дочерние экземпляры, запущенные позже - уже не прицепятся?)

и - да - исходный вопрос остается тот же: почему не прицепились все и сразу?

MinasFilm
() автор топика
Ответ на: комментарий от MinasFilm

запущенные позже - уже не прицепятся
почему не прицепились все и сразу?

Давай я процитирую man:

       -f          Trace child processes as they are created by currently traced  processes  as  a  result  of  the  fork(2),
                   vfork(2)  and  clone(2)  system calls. Note that -p PID -f will attach all threads of process PID if it is
                   multi-threaded, not only thread with thread_id = PID.

Ответ сразу на два вопроса. Какое слово непонятно?

anonymous
()
Ответ на: комментарий от MinasFilm

я хочу решить задачу для общего случая - когда дочерних у апача может быть n процессов

Оно уже было в этом треде на блюдечке и LGBT каемочкой.

anonymous
()
Ответ на: комментарий от anonymous

Оказывается пиды можно передать одним аргументом. Век живи, век учись.

strace -fyp «`pidof httpd`»

anonymous
()
Ответ на: комментарий от anonymous

в общем, решил через

maestro@meniac:~$ sudo strace -f -p `pgrep -of apache` -p $(pgrep -d ' -p' -P `pgrep -of apache`) -o apache.log
спасибо тебе большое

MinasFilm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.