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

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

1
pidof apache2

Собираем список аргументов:

1
pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g'

Вызываем strace:

1
strace -s 1024 -f $(pidof apache2 | sed 's/\([0-9]*\)/\-p \1/g')

На CentOS имя процесса другое:

1
strace -s 1024 -f $(pidof httpd | sed 's/\([0-9]*\)/\-p \1/g')

Для трейса php-cgi процессов команда будет следующая:

1
strace -s 1024 -f $(pidof php5-cgi | sed 's/\([0-9]*\)/\-p \1/g')

А вот более гибкий вариант для выборки процессов по регулярному выражению:

1
strace -s 1024 -f $(pgrep php5-fastcgi | sed 's/\([0-9]*\)/\-p \1/g')

А для Nginx:

1
strace -s 1024 -f $(pidof nginx | sed 's/\([0-9]*\)/\-p \1/g')

Для php5-fpm:

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

Для Apache wsgi:

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