#strace多个进程:
strace `ps aux | grep ProcGroupName | grep -v 'grep' | awk '{print "-p " $2}' | xargs echo`
#strace多个进程id下的所有线程
strace `ps -T ProcId1 ProcId2 ... | grep -v TTY | awk '{print "-p " $2}' | xargs echo`
#只strace网络调用:
strace -v -T -e trace=connect,read,readv,write,writev,recvfrom,sendto -f -p ProcId
#或
strace -v -T -e trace=network -f -p ProcId
#如strace redis的网络调用:
strace -e trace=network -t -s 256 -f -p `pgrep redis`
#strace多个进程的网络调用:
strace -s 1024 -v -T -e trace=network -f `ps aux | grep ProcGroupName | grep -v 'grep' | awk '{print "-p " $2}' | xargs echo`
#只strace信号
strace -e signal -f -p $pid
#strace某个信号
strace -e signal=SIGPROF -f -p $pid
#docker内使用strace
在docker内的极简操作系统镜像里使用strace需要strace的静态编译版本:
./configure LDFLAGS='-static -pthread' --enable-mpers=no
编译完成后只需把bin文件复制到docker里:
docker cp 本地文件路径 容器ID/容器NAME:容器内路径
--end--