我的主机上出现了一些问题,有太多入口进程正在运行。托管公司已授予我 SSH 访问权限,以便我可以更准确地监控情况,目前仅使用top
或ps aux
。我发现一个似乎没有完成的进程,它是一个 php 脚本lsphp
。但是服务器上运行着许多 PHP 脚本,我需要找出导致问题的脚本。有没有办法找出该进程所连接的实际 PHP 脚本/文件,而不仅仅是该进程正在由运行lsphp
?
例如,pwdx 6608
仅返回6608: /opt/cpanel/ea-php56/root/usr/bin
告诉我这是一个 PHP 进程,但没有告诉我哪个实际的 PHP 脚本启动了该进程。
答案1
使用
ps -f -p {pid}
列出启动进程的完整命令行。
如果这还不够的话,您可以使用以下命令获取该进程打开的文件列表:
lsof -p {pid}
输出很大,grep
是您的朋友(保留常规文件,排除 PHP 运行时,包含文件路径等...)。但打开的文件可能会给您提示。