是否有任何神奇的命令可以跟踪哪个进程正在启动这个占用 100% CPU 时间的 Perl 任务?我在几台安装了 JBoss AS 的机器上都遇到这个问题。
答案1
您可以procstat
在 FreeBSD 上使用。
procstat $PID
例如,为您提供流程概述
PID PPID PGID SID TSID THR LOGIN WCHAN EMUL COMM
8898 8894 1977 1977 0 6 tant usem FreeBSD ELF64 chrome
PPID 是可能已启动该进程的父进程的 ID。
和
procstat -f $PID
你会得到由$PID
procstat -c $PID
给出该过程的参数。
这个过程看起来很可疑。您不需要/usr/bin/javad
检查该进程是否确实打开了该文件或者程序是否覆盖了第一个参数。
答案2
您可以通过运行查看有关该命令的更多信息
ps l 39181
这将显示命令的参数,其中通常包括正在运行的脚本的名称。
如果您想留在top
,您可以按f并选择您想查看的信息字段。查找 PPID。这是生成 perl 进程的进程的 ID。
答案3
您可以执行 aps -fp processid
查看父进程。用于ps -fjp pid
查看进度组 ID,组 ID 将为您提供进程的层次结构。
编辑:正如下面的评论所指出的(我还没有评论权限),这只适用于 Linux。
答案4
顶部是一个漂亮的命令,它将列出所有正在运行的进程、CPU 利用率百分比、内存利用率百分比以及所有其他重要信息。