如何查看使用 top 或 ps aux 运行的 php 脚本

Bry*_*ams 3 php php-fpm

是否有我可以运行的命令可以公开显示 php 进程的脚本topps aux

Gre*_*egL 6

由于您正在使用php-fpm,我只看到几种方法来查看它在做什么/完成了什么。

php-fpm 状态页面
您必须使用pm.status_path指令配置 php-fpm 状态页面,如文档中所述。

然后你需要告诉你的 web 服务器将你使用的任何路径传递pm.status_path给 php-fpm。该方法将完全取决于 Web 服务器。

完成后,您将访问 php-fpm 状态页面并使用full查询参数显示所有工作人员(http://servername/status-phpfpm?full,如果您设置pm.status_pathstatus-phpfpm)。

也就是说,这不会向您显示已运行脚本的完整历史记录,只会显示每个工作程序上次运行或当前正在运行的脚本。

Web 服务器日志
检查Web 服务器的访问日志。

他们会告诉你什么已经运行了,如果你所有的 PHP 都在给定的目录中,或者以.php扩展名结尾,那么使用grep. 根据您的文档根目录、别名、URL 重写和其他 Web 服务器配置,您可能需要对这些日志进行一些解释才能找到给定脚本的完整文件系统路径。

这种方法不会告诉你什么是当前正在运行,因为据我所知,大多数Web服务器只写他们的访问日志请求已完成和HTTP回复已发送。这是为了它可以记录大小和状态代码。


ben*_*tek 5

您可以使用的命令:

pstree | grep php
ps aux | grep php
Run Code Online (Sandbox Code Playgroud)

pstree - pstree 信息

ps - ps 信息

“aux”开关显示:

  • 所有用户的进程
  • 向您展示以面向用户的方式列出的流程(按用户名)
  • 向您展示所有进程,而不仅仅是连接到终端的进程。这将包括诸如 crond、upowerd 等服务之类的进程。

grep -- grep 信息

  • 这将不起作用,因为 php-fpm 不会在 `ps` 或 `pstree` 中显示脚本。 (5认同)