docker 容器中: jstack on alpine:Unable to get pid of LinuxThreads manager thread

为什么在容器中 1 号进程挂不上 arthas? 作为技术人员还是需要了解底层,这样在排查问题、架构设计上才会有更多自由度,更能够抓住问题、解决问题。 阅读详情
  1. 添加 tini
FROM openjdk:8-jdk-alpine
RUN apk add --no-cache tini
ENTRYPOINT ["/sbin/tini", "--", "java -jar xxxx"]
  1. 使用已安装 tini 的镜像
FROM hengyunabc/arthas
ENTRYPOINT ["java -jar xxxx"]
  1. docker 运行时间添加 --init
docker run --init xxx
  1. 修改: ENTRYPOINT
ENTRYPOINT ["/bin/sh", "-c", "java -jar xxx && 1"]
  • 注:&& 1 不推荐使用此方式。如果使用docker run --rm -it运行时,使用 ctrl+c 中断时,会将中断信号阻断
【问题解决】Alpine镜像中执行jstack、arthas等命令提示Unable to get pid of LinuxThreads manager thread 最近在处理项目上问题发现之前同事构建的AlpineLinux的镜像不能执行jstack等JDK命令,报错如题 阅读详情

相关推荐

解决 Docker 内服务pid=1导致jvm分析命令不能使用问题

一、问题描述 通过Docker部署Java服务,执行 jsp 命令发现其pid 为 1,通过jmap -histo 1出现以下异常: 1: Unable to get pid of LinuxThreads manager thread 二、解决方案 网上查询得知pid:1-5为Linux的特殊进程。 pid=1 :init进程,系统启动的第一个用户级进程,是所有其它进程的父进程,引导用户空间服务。 pid=2 :kthreadd:用于内核线程管理。 pid=3 :migration,用于进

gmHappy 3669

docker下使用arthas,Unable to get pid of LinuxThreads manager thread报错解决,docker pid为1问题解决

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。在镜像内使用使用arthas去attach自己的Java应用时会报错Unable to get pid of LinuxThreads manager thread,这是因为pid=1是Linux的默认init进程。

weixin_42584613的博客 2420

[ADS]单端电感和差分电感的感值和Q值计算公式

单端电感和差分电感的感值和Q值计算公式

乾巽的博客 1万+

openjdk-alpine镜像无法打印线程堆栈和内存堆栈问题

基于openjdk:8u171-alpine构建的java镜像,使用jstack命令打印线程的时候会提示以下错误: /opt # ps -ef PID USER TIME COMMAND 1 root 0:28 /usr/lib/jvm/java-1.8-openjdk/bin/java -jar /test/lib/test.jar 66 root 0:00 /bin/sh 70 ...

weixin_30500289的博客 1103

单目标跟踪算法及其复现过程---SiamFC(一)

在test.py文件中,就是利用训练出来的模型进行测试,需要更改预训练模型的路径,测试集的路径,以OTB100为例,最后输出的是对每一帧目标位置的坐标点。代码如下:首先需要下载got10k官方库,只需要在终端输入(注意:在终端安装各种库的时候不能使用网络代理),在环境已经配置到的情况下,只需要该其中的路径和就可以运行。这个系列博客仅为了记录各目标跟踪算法的复现(大多为跑通大佬们实现的代码),包括其中出现的很多问题和错误,学到的新知识等等。解决,而且只使用在线的方法,限制了他们可以学习的模型的丰富性。

weixin_58244117的博客 4762

手把手拆解UCIe协议层:从Raw Mode到Flit Mode,数据包到底经历了什么?

本文深入解析UCIe协议层的数据包处理机制,从Raw Mode到Flit Mode的三大变体(Standard 256B、68B-Enhanced、Latency-Optimized),详细揭示数据包在不同模式下的封装与转换过程。通过工程师视角,展示协议层如何实现多模式动态切换、错误恢复及与D2D Adapter的协同设计,为芯片级互连技术提供实践指导。

weixin_28728495的博客 239

K8S 中 Alpine镜像中执行 jstack、arthas 等命令提示 Unable to get pid of LinuxThreads manager thread

这个错误信息来源于Alpine仓库中OpenJDK源码中的一个失误,没处理musl libc仍去调用了glibc的底层接口导致的。最近在处理项目上问题发现之前同事构建的AlpineLinux的镜像不能执行jstack等JDK命令,报错如下。此方案仅适用于X86_64 CPU架构,分在线与离线安装两种方法,以下举例说明。如下是亚马逊工程师对此仓库中底层OpenJDK8源码做的patch修复。Dockerfile中使用如下方式。Dockerfile中使用如下方式。

LoveSummer 2万+

基于python的奥运会历史数据分析【120年】

数据分析实战案例

xff123456_的博客 3338

docker报错:Unable to get pid of LinuxThreads manager thread及openjdk-alpine镜像无法打印线程堆栈和内存堆栈问题

基于openjdk:8u171-alpine构建的java镜像,使用jstack命令打印线程的时候会提示以下错误: /opt # ps -ef PID USER TIME COMMAND 1 root 0:28 /usr/lib/jvm/java-1.8-openjdk/bin/java -jar /test/lib/test.jar 66 root 0:00 /bin/sh 70 root 0:00 ps /opt # jstack 1 1: Unable to get pid of LinuxThr

学亮编程手记 5954

图片数据爬取工具Image-Downloader的安装和使用

文章目录1、python安装2、下载chromedriver并配置3、下载phantomjs并配置.4、安装相关python库5、使用 安装包地址:https://github.com/sczhengyabin/Image-Downloader 下载: 方式一:打开cmd,输入: git clone https://github.com/sczhengyabin/Image-Downloader.git 方式二:打开网址 1、python安装 该数据爬取工具要求python>=3.5,由于

wxplol的博客 6674

RK3588平台MIPI DSI屏幕调试记录

本文是基于RK3588平台,MIPI屏调试总结。调试过程中遇到的问题:一开始很久没亮,测量了电源电压和波形都正常。后来换了一组板子和屏幕做对比。最后是因为屏幕的座子没焊接好,二是接MIPI屏幕的排线太长会影响数据传输。换了一根短的线之后屏幕亮起。vp2vp3。

bingdund的博客 1390

jstack on alpine:Unable to get pid of LinuxThreads manager thread

jstack on alpine:Unable to get pid of LinuxThreads manager thread 在docker 中使用jstack 报错: bash-4.3# jps 112 Jps 7 jar bash-4.3# jstack 7 7: Unable to get pid of LinuxThreads manager thread 解决方法:尝试把你...

xianzi1261618338的专栏 7831

YOLO11-Seg优化:卷积变体系列篇 | 动态蛇形卷积(Dynamic Snake Convolution) | ICCV2023

动态蛇形卷积(Dynamic Snake Convolution),增强微小特征提取能力,引入到YOLO11-Seg,与C3k2结合实现二次创新

会AI的学姐 371

spring boot应用以docker容器方式启动后,进程ID是1而导致的jstack和jmap等命令不可用的问题

问题描述 dockerfile中以CMD形式直接执行java -jar,执行jstack 1 出现如下错误 1: Unable to get pid of LinuxThreads manager thread 原因 jstack jmap等jdk自带的tools放发无法对1号进程分析 解决办法 将java -jar写入shell脚本中 CMD执行脚本,这样shell脚本pid就会为1,java应用pid就不会为1 ...

kinectc的博客 2841

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

docker / k8s 容器内运行 jmap/jstat提示 Unable to get pid of LinuxThreads manage thread

要在线上查看gc情况,进入k8s容器的bash,ps -ef 发现目标的java线程的进程号是1,运行jmap 报错: Unable to get pid of LinuxThreads manage thread 查询了一下,原来是1是默认的启动进程,Dockerfile的ENTRYPOINT的执行默认就是 1。 说是要用tini来启动。但是里边是内网,又找不到tini的离线包。 几番查找。幡然醒悟,只要不要让那个java进程直接启动就好了。 修改Dockerfile RUN echo "java -

衡与墨的博客 2658

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【k8s中无法使用jstack和arthas的解决方案】1: Unable to get pid of LinuxThreads manager thread

使用alpine镜像,jstack和arthas等无法连接到pid为1的java进程。参数替换后的命令是非1的进程,此时就可以使用jstack和arthas等命令了。通过top可以看到,进程1就被上面命令占用,k8s容器中执行结果。

学亮编程手记 1483

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

线上问题处理干货(系列二)--如何分析docker Java项目内存泄露和溢出等问题?

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33980459的博客 1688

docker内使用jdk时,Unable to get pid of LinuxThreads manager thread

1.安装JDK apk add openjdk8 2.已非直接运行方式编写dockerFile,让进程以非pid 1执行 RUN echo "/usr/local/tomcat/bin/catalina.sh run" > start.sh \ && chmod 777 start.sh CMD ./start.sh

yhd723948277的博客 1368

docker内服务pid=1导致jvm分析命令不能使用问题

最近正式环境docker内服务出现内存溢出问题,想使用jdk自带的命令进行分析,但是发现不能使用jstack、jstat、jmap等命令。 /usr/lib/jvm/java-1.8-openjdk/bin # ./jstack 1 1: Unable to get pid of LinuxThreads manager thread 发现服务的pid=1,网上查询得知pid1-5为Linux的特殊进程。 pid=1 :init进程,系统启动的第一个用户级进程,是所有其它进程的父进程,引导.

冰魄神光 4705

Docker 使用 alpine openjdk 无法查看JVM 无jmap、jstat

在工作中遇到docker中的项目PID为1,镜像中JDK为:openjdk:8-jre-alpine,故不包含jmap等指令。若想在docker中查看相关信息可安装jattach即可解决 1.安装jattach apk add --no-cache jattach --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ 指令集: load : load agent library(导入agent库) pro

游荡边缘的博客 4753

046-解决google jib多任务问题

本文主要讲解使用google jib打包应用时 如果 基础镜像是 openjdk 的alpine系列,运行成功后无法正常使用 jmap,jstack,arthas 等工具,报错信息如下 [ERROR] Start arthas failed, exception stack trace: com.sun.tools.attach.AttachNotSupportedException: Unabl...

wanghao112956的博客 1244

解决spring boot应用以docker容器方式启动后,进程ID是1而导致的jstack和jmap等命令不可用的问题

TOC] 目的 解决spring boot应用以docker容器方式启动后,进程ID是1而导致的jstack和jmap等命令不可用的现象 默认将spring boot工程打包成镜像的方式 当我们把spring boot打包成一个可执行jar 编写Dockerfile 将jarcopy到容器中,在cmd 中执行java -jar ***.jar 启动,Dockerfile文件如下 #基础镜像基于openjdk,利用alpine FROM openjdk:8u212-jdk-alpine #所属团队

西西工作室 2917

java项目内存泄露如何解决_线上问题处理干货(系列二)--如何分析docker Java项目内存泄露和溢出等问题?...

01、线上JVM调优1.主要参数#JVM x参数#非标准化参数-Xint: 解释执行-Xcomp:第一次使用就编译成本地代码-Xmixed:混合模式,JVM自己来决定是否编译成本代码#XX参数分类格式:-XX:[+-]表示启用或者禁用name属性比如:-XX:+UseConcMarkSweepGC-XX:UseG1GC非Boolean类型格式:-XX: = 表示name属性的值是value比如:-...

weixin_32711097的博客 541
上一篇: 在Spring Boot中如何使用Cookies详析
下一篇: docker 运行并使用 arthas 的方式
who7708
博客等级 码龄16年 8粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值