我的个人博客网站最近被攻击了,被用来发送一些垃圾邮件。但是我不知道这个进程是怎么来的,用top查看发现一个不知道干什么的perl脚本,决定给用strace查看一下。
strace可以追踪一个进程的系统调用通过pid,像:
strace -vvtf -p
但是这个perl脚本的进程结束的太快了,不能用捕获pid然后strace它。
用下边这个脚本,可以通过进程名称追踪一个未开始的进程:
while true; do
pid=$(pgrep 'processname' | head -);
if [[ -n "$pid" ]]; then
strace -s -vvtf -p "$pid";
break;
fi;
done
这个技巧可以被用来strace一些不知道pid或者在捕获到pid前就已经结束的进程。
原文地址:http://konrness.com/linux/how-to-strace-a-process-that-has-not-started-yet/