Arthas 手动安装与命令行启动完全指南:as.sh/as.bat 脚本与手动拼接启动
Arthas 手动安装与命令行启动完全指南as.sh/as.bat 脚本与手动拼接启动【免费下载链接】arthasAlibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas项目地址: https://gitcode.com/gh_mirrors/ar/arthas本篇技术指南以 Arthas 官方manual-install文档为核心系统讲解如何在 Linux/Unix/Mac 与 Windows 平台手动安装、启动 Arthas覆盖install-local.sh本地安装、as.sh/as.bat一键脚本启动、Windows 服务模式诊断以及脚本失效时的手动拼接命令行启动方案。读者读完将掌握从下载安装到 attach 目标 JVM 再到 telnet 连接交互的完整链路并能理解-pid、-telnet-port、-http-port、-core、-agent等核心启动参数背后的配置解析机制。一、手动安装的四个步骤当希望完全脱离在线安装脚本从发行包手动部署 Arthas 时按以下四步操作。1. 下载最新版本前往官方下载地址获取最新版本发行包zip 格式包含bin目录、arthas-core.jar、arthas-agent.jar等组件。2. 解压发行包unzip arthas-packaging-bin.zip解压后目录中应包含启动脚本与各 jar 包其中关键文件包括bin/as.sh、bin/install-local.sh、arthas-core.jar、arthas-agent.jar等仓库 bin 目录 中即存放这些脚本与配套资源。3. 安装到本地用户目录官方强烈建议安装前彻底删除所有旧版本 Arthas避免残留版本造成 attach 或端口冲突。sudo su admin rm -rf /home/admin/.arthas/lib/* # 删除所有旧版本遗留文件 cd arthas ./install-local.sh # 请根据目标 Java 进程的属主切换用户核心机制说明脚本 install-local.sh 做的事非常简单——将当前目录下的所有*.jar复制到${HOME}/.arthas/lib/${ARTHAS_VERSION}/arthas/下并给as.sh增加可执行权限。因此安装完成后启动脚本会从~/.arthas/lib/版本号/arthas找到对应的 core/agent jar 完成后续 attach。注意rm -rf与sudo su操作请务必确认目录与用户无误切换用户的原则是以目标 Java 进程的属主身份运行否则 attach 可能因权限不一致失败。4. 启动 Arthas启动前请确保旧版本 Arthas 服务已经执行过stop命令退出否则 telnet 端口默认 3658可能被旧实例占用。./as.sh不传 PID 时as.sh会列出本机所有 Java 进程供交互选择详情见下文as.sh用法。二、以脚本方式启动as.sh / as.batLinux/Unix/Mac 一行安装启动在 Linux、Unix、Mac 上可以直接粘贴以下命令一键完成启动脚本的下载curl -L https://arthas.aliyun.com/install.sh | sh该命令会把启动引导脚本as.sh下载到当前目录。你可以把as.sh移动到任意位置或将其所在目录加入$PATH以便全局调用。之后直接执行./as.sh进入交互界面执行./as.sh -h查看全部参数帮助脚本会同时列出当前可见的 Java 进程列表。Windows 平台Windows 用户下载解压后在bin目录下找到as.bat。该脚本目前主要接受一个参数pid即只能诊断本机上的 Java 进程官方欢迎精通 bat 脚本的开发者改进。先通过jps查看本机 Java 进程 PID然后as.bat pid诊断 Windows 服务模式的 Java 进程若目标应用以 Windows 服务方式运行使用as-service.bat提供服务化诊断能力as-service.bat -port port as-service.bat -pid pid as-service.bat -pid pid --interact :: --interact 打开服务 UI 交互模式便于诊断问题清理 Arthas 服务as-service.bat -removeas.sh 常用参数速查从仓库 bin/as.sh 的usage定义可以看到as.sh支持如下常用选项括号内为默认值参数说明--target-ip value目标 JVM 监听 IP默认127.0.0.1--telnet-port value目标 JVM 监听 telnet 端口默认3658--http-port value目标 JVM 监听 http 端口默认8563传-1可关闭--session-timeout value会话超时秒数默认108003 小时--use-version value使用指定版本 Arthas如./as.sh --use-version 4.3.4--repo-mirror value指定下载仓库镜像值为center/aliyun或 http 仓库地址东八区时区下自动默认aliyun--attach-only只 attach 目标进程不连接控制台--select value按类名或 jar 文件名自动选择目标进程如--select math-game--tunnel-server url远程 tunnel 服务器地址如ws://192.168.10.11:7777/ws--agent-id value指定 agent id--username/--password认证用户名/密码--disabled-commands value禁用指定命令逗号分隔如stop,dump--command-locations value外部命令 jar 路径或目录逗号分隔-c cmd/-f file批量执行模式直接执行命令;分隔或批量脚本文件--height/--width控制台终端尺寸-v/--verbose打印调试信息运行行为说明来自 as.sh 源码脚本依次执行环境检查校验curl/grep/awk/telnet/unzip是否存在、定位JAVA_HOMEJDK 8 及以下要求能找到tools.jar并通过-Xbootclasspath/a注入、解析参数、sanity_check校验目标 PID 存在且当前用户与进程属主一致root 跳过、port_pid_check校验 telnet 端口未被其他 Arthas 实例占用最后调用attach_jvm用arthas-core.jar完成 attach成功后通过active_console进入 telnet 交互界面。若~/.arthas/lib下无对应版本脚本会先按版本号从远程仓库下载update_if_necessary。三、手动拼接命令行启动脚本失效时的兜底方案如果as.sh/as.bat启动失败可以绕开脚本直接手动拼接 java 命令行完成 attach。整个流程分三步。1. 定位目标 JVM 的 java 路径Linux/Unix/Macps aux | grep javaWindows通过进程管理器查找 java 进程的可执行文件路径。假设找到的路径为/opt/jdk1.8/bin/java。2. 拼接 bootstrap 启动命令/opt/jdk1.8/bin/java -Xbootclasspath/a:/opt/jdk1.8/lib/tools.jar \ -jar /tmp/arthas-packaging/arthas-core.jar \ -pid 15146 \ -target-ip 127.0.0.1 -telnet-port 3658 -http-port 8563 \ -core /tmp/arthas-packaging/arthas-core.jar \ -agent /tmp/arthas-packaging/arthas/arthas-agent.jar命令由以下几部分组成参数作用-Xbootclasspath/a:/opt/jdk1.8/lib/tools.jar把tools.jar追加到 boot classpathArthas 依赖其中的 attach API仅 JDK 8 及以下需要-jar /tmp/arthas-packaging/arthas-core.jar指定 main 函数入口即核心启动器com.taobao.arthas.core.Arthas-pid 15146指定目标 Java 进程 PID-target-ip 127.0.0.1指定监听 IP-telnet-port 3658 -http-port 8563指定 telnet 与 HTTP 端口供后续远程连接-core .../arthas-core.jar -agent .../arthas-agent.jar指定 core 与 agent 两个 jar 包的路径JDK 9 注意事项若运行在 JDK 9 及以上版本tools.jar已并入 JDK 模块jdk.attach无需再指定-Xbootclasspath直接去掉该参数即可。Windows 上对应的as.bat则通过--ignore-tools开关跳过tools.jar检查见 bin/as.bat。参数解析的底层实现上述参数在 core/src/main/java/com/taobao/arthas/core/Arthas.java 中被解析为Configure配置对象——其中-pid、-core、-agent为必填项-target-ip、-telnet-port、-http-port、-session-timeout等为可选项Configure.java 则定义了telnetPort、httpPort、javaPid、tunnelServer、username/password、disabledCommands等字段并通过arthas.前缀的配置见 core/src/main/java/arthas.properties其中默认arthas.telnetPort3658、arthas.httpPort8563、arthas.ip127.0.0.1、arthas.sessionTimeout10800提供配置文件层面的默认值。这意味着手动拼接命令与脚本启动在底层走的是同一套参数解析与 attach 逻辑。查看日志启动日志输出在~/logs/arthas/arthas.logattach 失败时优先检查该日志或目标 JVM 的 stderr。3. attach 成功后用 telnet 连接attach 成功第二步返回后即可连接交互控制台telnet 127.0.0.1 3658连接成功后即可输入dashboard、thread、trace等命令开始诊断。若 telnet 不可用也可访问http://127.0.0.1:8563通过 Web Console 连接Windows 的as.bat在找不到 telnet 时会自动尝试打开浏览器访问该 HTTP 地址见 bin/as.bat 的attachSuccess逻辑。四、常见问题与排障要点端口被旧实例占用启动前务必对旧 Arthas 执行stop若端口仍被其他进程占用as.sh会提示使用--telnet-port 9998 --http-port -1之类的方式更换端口或先连接旧实例执行stop清理。权限不匹配as.sh的sanity_check会校验当前用户与目标进程属主不一致时建议sudo su 目标用户 ./as.sh或sudo -u 目标用户 -EH ./as.sh执行。找不到 tools.jarJDK 8 及以下若报tools.jar was not found说明JAVA_HOME指向了 JRE 而非 JDK请修正JAVA_HOMEJDK 9 则无需tools.jar。attach 失败结合~/logs/arthas/arthas.log与目标 JVM stderr 定位也可使用as.sh --debug-attach打开 JDPA 调试默认address8888进一步排查。跨版本残留升级版本前先清空~/.arthas/lib/*再重新执行install-local.sh避免新旧 jar 混用。五、延伸阅读官方文档目录site/docs/en/doc英文与 site/docs/doc中文其中 start-arthas.md 可进一步了解常规启动流程。脚本源码bin/as.sh、bin/as.bat、bin/install-local.sh、bin/as-service.bat。核心启动器与配置解析core/src/main/java/com/taobao/arthas/core/Arthas.java、core/src/main/java/com/taobao/arthas/core/config/Configure.java。默认配置参考core/src/main/java/arthas.properties。【免费下载链接】arthasAlibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas项目地址: https://gitcode.com/gh_mirrors/ar/arthas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Formik 总览:用最小 API 在 React 中构建表单的状态、校验与提交

Formik 总览:用最小 API 在 React 中构建表单的状态、校验与提交

Formik 总览:用最小 API 在 React 中构建表单的状态、校验与提交 【免费下载链接】formik Build forms in React, without the tears 😭 项目地址: https://gitcode.com/gh_mirrors/fo/formik 表单在 React 中一向以啰嗦著称,而 Form…

2026/9/19 2:41:01 阅读更多 →
混凝土强度检测全流程解析:从方法选型到数据处理

混凝土强度检测全流程解析:从方法选型到数据处理

简介:混凝土强度检测直接关系到建筑结构的安全与稳定。围绕这一主题,文档系统介绍回弹法、超声回弹综合法、钻芯法等常用检测手段的原理、操作流程与适用条件,面向施工员、质量检测人员及土木工程专业学习者。内容结合真实工程实例&#xff0…

2026/9/19 2:40:01 阅读更多 →
SeaTunnel 表模型与类型系统深度解析:从 CatalogTable 到 Schema Evolution 的完整指南

SeaTunnel 表模型与类型系统深度解析:从 CatalogTable 到 Schema Evolution 的完整指南

SeaTunnel 表模型与类型系统深度解析:从 CatalogTable 到 Schema Evolution 的完整指南 【免费下载链接】seatunnel SeaTunnel is a multimodal, high-performance, distributed, massive data integration tool. 项目地址: https://gitcode.com/GitHub_Trending/…

2026/9/19 2:40:01 阅读更多 →

最新新闻

YOLOv8本地部署全流程:Anaconda、PyCharm、CUDA与PyTorch环境配置避坑指南

YOLOv8本地部署全流程:Anaconda、PyCharm、CUDA与PyTorch环境配置避坑指南

但凡亲手做过一次YOLOv8本地部署的人,应该都会同意一件事:YOLOv8本身一点都不难,难的是环境。模型说白了就是一个Python包,一条pip install ultralytics就能装完。但在这条命令之前的Python版本管理、PyTorch安装、CUDA和显卡驱动…

2026/9/19 3:27:30 阅读更多 →
.NET MAUI Essentials 跨平台设备感知与智能交互实战

.NET MAUI Essentials 跨平台设备感知与智能交互实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 3:27:30 阅读更多 →
DAB调制优化:从SPS到TPS的物理约束解耦实战

DAB调制优化:从SPS到TPS的物理约束解耦实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 3:27:30 阅读更多 →
Rsoft光纤布拉格光栅仿真:透射谱与能量分布分析技巧

Rsoft光纤布拉格光栅仿真:透射谱与能量分布分析技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 3:27:30 阅读更多 →
CELSMA混沌增强领导者黏菌算法求解分布式置换流水车间调度

CELSMA混沌增强领导者黏菌算法求解分布式置换流水车间调度

做车间调度这一行的人,十有八九都跟置换流水车间调度问题(PFSP)打过交道:一堆工件,按同样的顺序经过若干台机器,目标是把开工时间排明白,让总完工时间最短。这几年分布式制造越来越普遍&#xf…

2026/9/19 3:27:30 阅读更多 →
MCP协议实战:让Cursor调用文件操作、网页抓取等外部能力

MCP协议实战:让Cursor调用文件操作、网页抓取等外部能力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 3:26:29 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →