首页 > 编程知识 正文

jps命令不能用(jps是什么命令)

时间:2023-05-06 01:10:37 阅读:76566 作者:934

一. jps的创建用html

jps类似于linux中的ps命令,但ps用于显示进程,而jps显示java进程,确切地说,是用户当前启动的java进程信息的一部分。 信息包括进程编号和短进程command。 java

二、某个java进程已经启动,但jps无法显示其进程号linux

这个问题已经碰了两次,现在总结一下。 ubuntu

症状: windows

您可以看到在ps -ef|grepjava中启动的java进程,但在jps中查看时该进程的id不存在。 稍后,您将看到在这种情况下,jconsole、jvisualvm可能无法监视此进程,而其他java可能拥有工具,但无法使用oracle

分析: jvm

启动java程序时,默认情况下会在/tmp/hsperfdata_userName目录下创建一个新文件,其中包含有关运行jvm的信息,并使用进程的id作为文件名。 其中,userName将替换为当前用户名,如果是/tmp/hsperfdata _ username windows计算机/tmp,则替换为存储临时文件的windows目录。 工具

jps、jconsole和jvisualvm等工具的数据源是此文件(/tmp/hsperfdata_userName/pid )。 因此,如果文件不存在或无法读取,则会出现jps无法看到进程号、jconsole无法监视等问题spa

原因: pwa

(1)、磁盘读写、目录权限问题

如果您没有/tmp目录的写入权限,或者磁盘已满,则无法创建/tmp/hsperfdata_userName/pid文件。 或者,文件已生成,但用户没有读取权限

)2)、临时档案丢失、删除或按期清理

在linux计算机上,通常存在清理临时文件夹的计划任务,/tmp目录为空。 这也是我第一次遇到这种现象的原因。 常用的定期删除临时目录的工具有crontab、redhat的tmpwatch、ubuntu的tmpreaper等

这种现象可能会变成这样。 正在jconsole中监视进程。 现在在某个时间段还存在后退的进程,但是没有监视信息。

) 3、java进程信息文件的存储位置已设置,不在/tmp目录下

在前面的说明中,默认情况下流程信息存储在/tmp/hsperfdata_userName目录中,但由于前面1、2中介绍的原因,此文件可能无法生成或丢失,因此在java启动时参数jps

用于设置此文件位置的参数为-Djava.io.tmpdir

其他:

/tmp/hsperfdata_userName/pid文件将在相应的java进程结束后清除。 如果java进程异常终止(如kill-9 ),则pid文件将一直保留到运行java命令或加载jvm程序的命令(如jps、javac、jstat等)为止,并且所有不需要的pid文件都将保留

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。