Я использую nginx + php-fpm для среды php и хочу ограничить выполнение php-скрипта, но есть много работника php-fpm, так что, если я могу узнать, какой работник php-fpm обрабатывает скрипт?
Если я должен контролировать все работники php-fpm, пример будет следующим:
additional_strace_args="$1"
MASTER_PID=$(ps auwx | grep php-fpm | grep -v grep | grep 'master process' | cut -d ' ' -f 6)
while read -r pid;
do
if [[ $pid != $MASTER_PID ]]; then
nohup strace -r -p "$pid" $additional_strace_args >"$pid.trc" 2>&1 &
fi
done < <(pgrep php-fpm)
Вы можете использовать -f
флаг для отслеживания дочерних процессов следующим образом:
strace -f $(pidof php-fpm | sed 's/\([0-9]*\)/\-p \1/g')
Других решений пока нет …