【问题标题】:how strace php-fpm process?strace php-fpm 进程如何?
【发布时间】:2015-11-11 02:09:45
【问题描述】:

我在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)

【问题讨论】:

    标签: php strace


    【解决方案1】:

    您可以使用-f 标志来跟踪子进程,如下所示:

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

    【讨论】:

    • 我需要使用pgrep 因为pidof 没有找到我的进程:strace -f $(pgrep php-fpm | sed 's/\([0-9]*\)/\-p \1/g')
    • 只要能找到进程id,任何方法都可以。
    猜你喜欢
    • 1970-01-01
    • 2013-03-06
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2023-03-14
    • 2011-07-22
    相关资源
    最近更新 更多