CloudStack中控制台虚拟机调试

2024-02-08 11:44

本文主要是介绍CloudStack中控制台虚拟机调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在CloudStack环境中,有时我们需要对系统虚拟机进行调试或者替换其中的JAR包。本文将详细介绍如何通过SSH连接到CloudStack的系统虚拟机,并进行相关的调试和JAR包替换操作。

1. 连接系统虚拟机

首先,我们需要使用SSH连接到目标系统虚拟机。这里假设虚拟机的IP地址是169.254.0.4

cloudstack-ssh 169.254.0.4

2. 进入Shell目录

登录后,我们需要进入CloudStack系统虚拟机的shell目录。

cd /usr/local/cloud/systemvm/

3. 配置文件调试设置

为了让Java应用支持远程调试,我们需要在_run.sh脚本中添加调试参数。

chmod 766 _run.sh  # 修改文件权限
vi _run.sh         # 编辑脚本

在脚本中找到启动Java应用的命令,并在其后面添加以下参数:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8001

这些参数告诉Java应用开启调试模式,并监听8001端口。

4. 开放端口

为了让外部可以连接到这个调试端口,我们需要在防火墙上开放8001端口。

iptables -A INPUT -p tcp -m tcp --dport 8001 -j ACCEPT

5. 查看并终止Java进程

在开启调试之前,我们需要确保没有旧的Java进程在运行。

ps -aux | grep java  # 查看Java进程
kill pid            # 终止Java进程(将pid替换为实际的进程ID)

6. 替换JAR包(按需,记得重启)

当我们完成调试设置后,就可以开始替换JAR包了。这里假设你有两个新的JAR包:cloud-console-proxy-4.18.0.0.jarcloud-utils-4.18.0.0.jar,并且你想将它们复制到目标虚拟机的/usr/local/cloud/systemvm/目录下。

scp -i /root/.ssh/id_rsa.cloud -P 3922 -r /root/cloud-console-proxy-4.18.0.0.jar root@169.254.0.2:/usr/local/cloud/systemvm/
scp -i /root/.ssh/id_rsa.cloud -P 3922 -r /root/cloud-utils-4.18.0.0.jar root@169.254.0.2:/usr/local/cloud/systemvm/

注意,这里的-i参数用于指定SSH私钥文件,-P参数用于指定SSH端口(如果非默认端口22),-r参数表示递归复制整个目录。

7. 调试和验证

完成上述步骤后,你应该可以通过IDE(如IntelliJ IDEA或Eclipse)连接到运行在系统虚拟机上的Java应用,并进行调试了。同时,你也可以验证新替换的JAR包是否按预期工作。

总结

通过以上步骤,我们可以方便地对CloudStack中的系统虚拟机进行调试和JAR包替换。这对于开发和测试新的功能或修复错误非常有用。在进行这些操作时,请确保你有足够的权限,并且始终备份重要数据以防万一。

这篇关于CloudStack中控制台虚拟机调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/690925

相关文章

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

HotSpot虚拟机的经典垃圾收集器

读《深入理解Java虚拟机》第三版笔记。 关系 Serial、ParNew、Parallel Scavenge、Parallel Old、Serial Old(MSC)、Concurrent Mark Sweep (CMS)、Garbage First(G1)收集器。 如图: 1、Serial 和 Serial Old 收集器 2、ParNew 收集器 3、Parallel Sc

理解java虚拟机内存收集

学习《深入理解Java虚拟机》时个人的理解笔记 1、为什么要去了解垃圾收集和内存回收技术? 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须对这些“自动化”的技术实施必要的监控和调节。 2、“哲学三问”内存收集 what?when?how? 那些内存需要回收?什么时候回收?如何回收? 这是一个整体的问题,确定了什么状态的内存可以

C++实现俄罗斯方块(Windows控制台版)

C++实现俄罗斯方块(Windows控制台版) 在油管上看到一个使用C++控制台编写的俄罗斯方块小游戏,源代码200多行,B站上也有相关的讲解视频,非常不错,值得学习。 B站讲解视频地址为:【百万好评】国外技术大神C++游戏编程实战教程,油管580W收藏,新手10小时入门,并快速达到游戏开发能力(中英字幕) B站 CSDN博主千帐灯无此声还为此写了一篇博客:C++实现俄罗斯方块(源码+详解),讲