问题重现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
➜ jinfo -flags 3032
Attaching to process ID 3032, please wait...
Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process
sun.jvm.hotspot.debugger.DebuggerException: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$LinuxDebuggerLocalWorkerThread.execute(LinuxDebuggerLocal.java:163)
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.attach(LinuxDebuggerLocal.java:278)
at sun.jvm.hotspot.HotSpotAgent.attachDebugger(HotSpotAgent.java:671)
at sun.jvm.hotspot.HotSpotAgent.setupDebuggerLinux(HotSpotAgent.java:611)
at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:337)
at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:304)
at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:185)
at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
at sun.jvm.hotspot.tools.JInfo.main(JInfo.java:138)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.tools.jinfo.JInfo.runTool(JInfo.java:108)
at sun.tools.jinfo.JInfo.main(JInfo.java:76)
Caused by: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.attach0(Native Method)
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.access$100(LinuxDebuggerLocal.java:62)
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$1AttachTask.doit(LinuxDebuggerLocal.java:269)
at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$LinuxDebuggerLocalWorkerThread.run(LinuxDebuggerLocal.java:138)

解决办法

1
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

再次执行时就可以得到结果了

1
2
3
4
5
6
7
➜ jinfo -flags 3032
Attaching to process ID 3032, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.5-b02
Non-default VM flags: -XX:InitialHeapSize=41943040 -XX:MaxHeapSize=536870912 -XX:MaxNewSize=178782208 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=1572864 -XX:OldSize=40370176 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
Command line: -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms40m -Xmx512m

原因

这是因为新版的Linux系统加入了 ptrace-scope 机制. 这种机制为了防止用户访问当前正在运行的进程的内存和状态, 而一些调试软件本身就是利用 ptrace 来进行获取某进程的内存状态的(包括GDB),所以在新版本的Linux系统, 默认情况下不允许再访问了. 可以临时开启. 如:

1
echo 0 > /proc/sys/kernel/yama/ptrace_scope

永久写到文件来持久化:

1
2
3
4
emacs /etc/sysctl.d/10-ptrace.conf
添加或修改为以下这一句:(0:允许, 1:不允许)
kernel.yama.ptrace_scope = 0

转载于:https://www.cnblogs.com/duanxz/p/10240899.html

使用Java监控工具出现 Can't attach to the process相关推荐

  1. Can‘t attach to the process: ptrace(PTRACE_ATTACH, ..)

    .因为新版的Linux系统加入了 ptrace-scope 机制,该机制的目的是防止用户访问正在执行的进程的内存,但是如jinfo,jmap这些调试类工具本身就是利用ptrace来获取执行进程的内存等 ...

  2. Can't attach to the process: ptrace(PTRACE_ATTACH, ..) Operation not permitted

    使用jmap无法访问java进程 Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attac ...

  3. Java监控工具VisualVM

    目录 一.简介 二.内存分析 1.Heap堆 三.CPU分析 四.线程分析 一.简介 VisualVM 是一款免费的,集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力,对Java应用 ...

  4. java实现进程管理,Java调用批处理或可执行文件和Runtime、Process类实现Java版进程管理器...

    Java调用批处理或可执行文件 用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现.下面是一种比 ...

  5. jmap在ubuntu上DebuggerException: Can't attach to the process

    解决: 临时: 1.echo 0 >/proc/sys/kernel/yama/ptrace_scope 永久: 2.修改 /etc/sysctl.d/10-ptrace.conf,设置kern ...

  6. 【java】java 命令 Unable to open socket file: target process not responding or HotSpot VM not loaded

    1.场景1 1.1 概述 因为线上,环境,我运行了一个flink程序,然后跑在 下面都是docker容器内. 客户端 flink_node 运行节点:taskManager运行在datanode1容器 ...

  7. Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:

    Error:java.util.concurrent.ExecutionException 今晚被csdn深坑了一把,本身写完的三篇博文不知道为啥突然间都没了,有苦说不出啊,算了,熬夜赶博. 这是最终 ...

  8. java中结束进程的方法_java关闭Process

    java1.8之后,Process有了destroy和destroyForcibly方法,用来结束进程,一般结束进程的流程为: terminate process with destroy() all ...

  9. Java Attach API

    catalog 1. instrucment与Attach API 2. BTrace: VM Attach的两种方式 3. Sun JVM Attach API 1. instrucment与Att ...

最新文章

  1. 学生信息系统求助_Student Information Management -一个简单的学生信息管理系统(持续更新2)...
  2. 浅谈https(创建、传输、断开)
  3. GCC的内嵌汇编语法 ATT汇编语言语法
  4. 拓端tecdat|数据盘点高校新生录取情况
  5. UNIX网络编程之一:代码环境搭建
  6. 美国大学计算机科学与物理,美国大学物理专业浅谈
  7. 国家统计局 省市区 数据爬取
  8. 103.219.29杭州DNS常见的的5个网络安全威胁
  9. 夜曲歌词 拼音_周杰伦夜曲歌词
  10. liang-barsky_C和C ++中的Liang Barsky线裁剪算法
  11. 供应链协同是什么?供应链协同如何定义?
  12. 「 Mac应用加密工具」AppLocker for Mac 2.7.0
  13. one class SVM
  14. WAF是什么东西?!--- 1 waf的功能和用到的技术原理介绍
  15. spring-环绕通知 @Around
  16. 利用python-docx设置简单的word文档模板
  17. Play with OSM (by quqi99)
  18. FET细解:FET(IGFET、JFET、MESFET)、IGFET(MOSFET/MISFET、HFET)、HFET(MODFET、HIGFET)
  19. [Kali]安装360随身Wifi-3代驱动(失败)
  20. 服务助手NSSM——将Windows程序封装成服务

热门文章

  1. 快速排查feign.FeignException: status 500 …
  2. 2021-2027年中国手机壳行业现状研究及发展趋势分析报告
  3. 2021-2027年中国智能制造行业市场前景预测研究报告
  4. 2022-2028年中国饮水机市场投资分析及前景预测报告
  5. GCC 链接 xxx:No such file or directory 及运行可执行文件 error while loading shared libraries: xxx.so 解决方案
  6. 模拟内存计算如何解决边缘人工智能推理的功耗挑战
  7. 自然语言推理:使用注意力机制
  8. 【嵌入式】openmv与stm32的串口通信
  9. [微信官方文档] 小程序-错误码信息与解决方案表
  10. [C] 图的深度优先遍历