使用Java监控工具出现 Can't attach to the process
问题重现
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相关推荐
- Can‘t attach to the process: ptrace(PTRACE_ATTACH, ..)
.因为新版的Linux系统加入了 ptrace-scope 机制,该机制的目的是防止用户访问正在执行的进程的内存,但是如jinfo,jmap这些调试类工具本身就是利用ptrace来获取执行进程的内存等 ...
- 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 ...
- Java监控工具VisualVM
目录 一.简介 二.内存分析 1.Heap堆 三.CPU分析 四.线程分析 一.简介 VisualVM 是一款免费的,集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力,对Java应用 ...
- java实现进程管理,Java调用批处理或可执行文件和Runtime、Process类实现Java版进程管理器...
Java调用批处理或可执行文件 用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现.下面是一种比 ...
- 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 ...
- 【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容器 ...
- Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:
Error:java.util.concurrent.ExecutionException 今晚被csdn深坑了一把,本身写完的三篇博文不知道为啥突然间都没了,有苦说不出啊,算了,熬夜赶博. 这是最终 ...
- java中结束进程的方法_java关闭Process
java1.8之后,Process有了destroy和destroyForcibly方法,用来结束进程,一般结束进程的流程为: terminate process with destroy() all ...
- Java Attach API
catalog 1. instrucment与Attach API 2. BTrace: VM Attach的两种方式 3. Sun JVM Attach API 1. instrucment与Att ...
最新文章
- 学生信息系统求助_Student Information Management -一个简单的学生信息管理系统(持续更新2)...
- 浅谈https(创建、传输、断开)
- GCC的内嵌汇编语法 ATT汇编语言语法
- 拓端tecdat|数据盘点高校新生录取情况
- UNIX网络编程之一:代码环境搭建
- 美国大学计算机科学与物理,美国大学物理专业浅谈
- 国家统计局 省市区 数据爬取
- 103.219.29杭州DNS常见的的5个网络安全威胁
- 夜曲歌词 拼音_周杰伦夜曲歌词
- liang-barsky_C和C ++中的Liang Barsky线裁剪算法
- 供应链协同是什么?供应链协同如何定义?
- 「 Mac应用加密工具」AppLocker for Mac 2.7.0
- one class SVM
- WAF是什么东西?!--- 1 waf的功能和用到的技术原理介绍
- spring-环绕通知 @Around
- 利用python-docx设置简单的word文档模板
- Play with OSM (by quqi99)
- FET细解:FET(IGFET、JFET、MESFET)、IGFET(MOSFET/MISFET、HFET)、HFET(MODFET、HIGFET)
- [Kali]安装360随身Wifi-3代驱动(失败)
- 服务助手NSSM——将Windows程序封装成服务
热门文章
- 快速排查feign.FeignException: status 500 …
- 2021-2027年中国手机壳行业现状研究及发展趋势分析报告
- 2021-2027年中国智能制造行业市场前景预测研究报告
- 2022-2028年中国饮水机市场投资分析及前景预测报告
- GCC 链接 xxx:No such file or directory 及运行可执行文件 error while loading shared libraries: xxx.so 解决方案
- 模拟内存计算如何解决边缘人工智能推理的功耗挑战
- 自然语言推理:使用注意力机制
- 【嵌入式】openmv与stm32的串口通信
- [微信官方文档] 小程序-错误码信息与解决方案表
- [C] 图的深度优先遍历