Иногда бывает так что, на первый взгляд, начинает без причины падать apache, или php-fpm. Никакие CoreDump в этом могут не помогать.
Часто этот процесс представляет собой связку процессов и мониторить их необходимо все, так как заранее неизвестно, каким из процессов будет отработан наш запрос. На этот случай strace умеет принимать набор pid'ов процессов, на каждый процесс свой аргумент -p.

Получаем список всех процессов по имени: 
pidof apache2​

Собираем список аргументов: 
pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g'​

Вызываем strace:
strace -s 1024 -f $(pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g')​

На CentOS имя процесса другое:
strace -s 1024 -f $(pidof httpd | sed 's/\([0-9]*\)/\-p \1/g')​

Для трейса php-cgi процессов команда будет следующая:
strace -s 1024 -f $(pidof php5-cgi | sed 's/\([0-9]*\)/\-p \1/g')​


А вот более гибкий вариант для выборки процессов по регулярному выражению:
strace -s 1024 -f $(pgrep php5-fastcgi | sed 's/\([0-9]*\)/\-p \1/g')​

А для Nginx:
strace -s 1024 -f $(pidof nginx | sed 's/\([0-9]*\)/\-p \1/g')​

Для php5-fpm:
strace -s 1024 -f $(pidof php5-fpm | sed 's/\([0-9]*\)/\-p \1/g')​

Для Apache wsgi:
strace -s 1024 -f $(ps aux|grep wsgi|grep -v 'grep'|awk '{print $2}'| sed 's/\([0-9]*\)/\-p \1/g') ​

взято с: отличного сайта

Добавить комментарий


Защитный код
Обновить