有效地使用strace

现在我正在处理一个客户端的基于PHP的网站,不知何故堵塞了他与他的共享主机提供商的所有可用的进程。 我想向他certificate在某个特定的索引页面被加载到浏览器中的时候,究竟运行了多less个进程。 我可以一次看到5或6个popup窗口,但是它们全部消失,很快回来,我无法find任何具体的pid来追踪。

任何人都有一个想法,我怎么能预测我应该跟随的PID号码,找出他的网站具体做什么?

使用ps或pstreefind你想跟踪的任何东西的父pid,我假设它可能是apache? 然后,使用-f选项来跟踪所有子pid。 最后,如果你有一个相对较新的strace,你可以用-e trace=process跟踪进程活动。

把它放在一起,并假设你的Apache父进程是PID 1234:

 strace -o logfile.txt -f -e trace=process -p1234 

应该让你非常接近你想去的地方。

我不知道下面的概念是否会太慢(即使是脚本)来抓pid:

  1. 使inotifywait等待特定的索引页面访问。
  2. configurationinotifywait来触发

strace -o /tmp/wtf -f -e trace=process -p $(lsof -t /path/to/specific/index.php)

或类似的东西。 这只是一个疯狂的猜测,没有真正尝试以上。

另请参阅: XDebug和KCacheGrind 。