亿赛通脚本远程调试配置技巧

要进行远程调试,主要是对 TomcatJava进程 进行调试。以下是针对该系统的远程调试配置方法:

一、Tomcat远程调试配置

1. 修改Tomcat启动脚本

找到Tomcat的启动脚本(通常在/esafenet/tomcat/bin/catalina.shstartup.sh):

bash 复制代码
# 在catalina.sh中JAVA_OPTS配置部分添加调试参数
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

或者直接在启动命令中添加:

bash 复制代码
./catalina.sh jpda start

2. 使用JPDA启动(推荐)

修改/esafenet/tomcat/bin/catalina.sh

bash 复制代码
# 查找JPDA相关配置,通常在文件开头附近
JPDA_ADDRESS="5005"
JPDA_TRANSPORT="dt_socket"

然后在启动时使用:

bash 复制代码
export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=0.0.0.0:5005,server=y,suspend=n"
./catalina.sh jpda start

3. 在checkProcessAlive.sh中修改启动方式

如果您希望通过守护进程保持调试模式,可以修改脚本中的Tomcat启动部分:

bash 复制代码
check_tomcat()
{
    if [ -d $tomcat ]
    then
        sleep 10
        tomcatpid=$(ps -ef | grep tomcat|grep -v grep |wc -l)
        
        if [ $tomcatpid -eq 0 ] 
        then
            echo "============Tomcat has been closed. Now start the Tomcat program with debug" >> $LOGFILE
            cd $tomcat
            
            # 添加调试参数启动
            export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
            ./startup.sh >$DEV_NULL 2>&1
            
            # 或者使用JPDA模式
            # ./catalina.sh jpda start >$DEV_NULL 2>&1
            
            sleep 3
        else
            echo "======Tomcat is running normally" >> $LOGFILE
        fi
    fi
}

二、其他Java进程调试

1. Logstash调试

修改logstash启动部分:

bash 复制代码
# 在check_logstash函数中修改
nohup $LOGSTASH_DIR_NEW/bin/logstash -f $LOGSTASH_DIR_NEW/config/log_logstash_es_company_linux.conf \
-J-Djruby.debug=true \
--log.level debug >$DEV_NULL 2>&1 &

2. Elasticsearch调试

bash 复制代码
# 在check_es函数中修改
su - $EST_USER -c "/esafenet/elasticsearch/bin/elasticsearch -d \
-Enetwork.host=0.0.0.0 \
-Etransport.tcp.port=9300 \
-Ehttp.port=9200 \
-Enetwork.tcp.keep_alive=true"

三、IDE连接配置

IntelliJ IDEA配置

  1. Run → Edit Configurations

  2. Add New Configuration → Remote JVM Debug

  3. 配置参数:

    复制代码
    Host: <服务器IP>
    Port: 5005
    Command line arguments: 保持默认

Eclipse配置

  1. Run → Debug Configurations

  2. Remote Java Application → New

  3. 配置:

    复制代码
    Host: <服务器IP>
    Port: 5005
    Connection Type: Standard (Socket Attach)

四、防火墙配置

确保调试端口开放:

bash 复制代码
# 开放5005端口
firewall-cmd --zone=public --add-port=5005/tcp --permanent
firewall-cmd --reload

# 或者临时开放
iptables -A INPUT -p tcp --dport 5005 -j ACCEPT

五、调试建议和注意事项

生产环境调试

  1. 安全考虑:生产环境慎用远程调试,建议:

    • 在测试环境调试
    • 使用VPN访问
    • 调试后立即关闭端口
  2. 性能影响

    • 调试模式会降低性能
    • 建议设置suspend=n(不挂起启动)

调试脚本创建

您可以创建一个专门的调试启动脚本:

/esafenet/bin/start_debug.sh

bash 复制代码
#!/bin/bash

# 停止当前服务
/esafenet/bin/stop_all.sh

# 设置调试环境变量
export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

# 按顺序启动各服务(带调试)
check_mysql
check_es
sleep 5
check_tomcat
check_logstash

常用调试命令

bash 复制代码
# 查看调试端口监听
netstat -tlnp | grep 5005

# 查看Java进程调试参数
ps -ef | grep java | grep jdwp

# 测试端口连通性
telnet <server_ip> 5005

六、故障排除

  1. 连接拒绝

    • 检查防火墙
    • 确认Tomcat已启动调试模式
    • 检查IP地址是否正确
  2. 连接超时

    • 检查网络连通性
    • 确认端口未被占用
  3. 调试不生效

    • 重启Tomcat使配置生效
    • 检查JAVA_OPTS是否正确设置

注意:在进行远程调试前,请确保:

  1. 有相应的系统权限
  2. 了解调试对系统的影响
  3. 生产环境调试需谨慎,建议先在测试环境验证
  4. 调试完成后恢复原配置
相关推荐
咩咩啃树皮6 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚7 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白8 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司9 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地10 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415910 小时前
TCP超时重传机制是为了解决什么问题?
java
莫逸风12 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
z1234567898613 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
yaoxin52112314 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
做个文艺程序员14 小时前
Linux第24篇:Java应用监控体系搭建:Prometheus+Grafana可视化运维
java·grafana·prometheus