php - 如何strace php-fpm进程?

标签 php strace

我在 php 环境中使用 nginx+php-fpm,我想 strace 执行 php 脚本,但是有很多 php-fpm worker,那么我怎么知道哪个 php-fpm worker 在处理脚本呢?
如果我应该监控所有的 php-fpm worker,示例如下:

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')

关于php - 如何strace php-fpm进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33643131/

相关文章:

PHP从列表构建递归数组

strace/ltrace 输出不一致的信息

php - 我无法做到,所以数据存储在 mysql 数据库中

php - 如何以分页方式从 YouTube 获取用户视频

c++ - 是否有 GCC __PRETTY_FUNCTION__ 等同于它所提供的文字参数?

linux - ltrace 等同于 osx?

linux - strace 卡在暂停系统调用

c - 将自定义文本打印到 strace 中。评论

php - CakePHP 错误 : Call to a member function find() on a non-object

php - 我的 mysql 和 php 有问题