• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Shell脚本采取java进程的线程转储

java 来源:harshavmb 10次浏览

使用jstack我们可以采用正在运行的java进程的线程转储。通过topps -aef | grep java命令,我们可以使用大多数系统资源来识别流氓进程。Shell脚本采取java进程的线程转储

所以,如果我们使用jstack <rogue pid> >> threaddump.log我们可以采取指定的java进程的线程转储。

现在我的问题,是否有任何shell脚本,可以识别顶级java进程,采取进程id(pid),输入到jstack实用程序并采取线程转储?

我在网上搜索和大多数的链接需要手动输入进程ID的努力。所以,我只是想知道是否有任何现有的shell脚本可以避免手动输入。

在此先感谢。

===========解决方案如下:

对于我这个管的工作原理:

ps -eo pid,%cpu,comm | grep java |sort -nr -k2 | head -n1 | awk '{print $1}' | xargs jstack 

说明:

PS -eo PID,%的CPU,通信:将打印PID CPU占用率和命令名称

的grep java的所有进程: greps all java进程

sort -nr -k2:将结果数值反向排序第二列

头-n1:打印的第一行

AWK ‘{打印$ 1}’:打印第一列

xargs的jstack:取得输入,并使用它作为参数用于jstack命令


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)