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

要进行远程调试,主要是对 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. 调试完成后恢复原配置
相关推荐
爬山算法几秒前
Hibernate(29)什么是Hibernate的连接池?
java·后端·hibernate
Fuly10243 分钟前
软件研发类项目流程
java
我命由我123454 分钟前
Android Jetpack Compose - TopAppBar、BottomAppBar、Scaffold
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
我爱娃哈哈6 分钟前
SpringBoot + Aviator + 规则中心:轻量级表达式引擎实现营销优惠动态计算
java·spring boot·后端
廋到被风吹走6 分钟前
【Spring】IoC容器深度解析:Bean生命周期与循环依赖三级缓存
java·spring·缓存
珂朵莉MM6 分钟前
2025年睿抗机器人开发者大赛CAIP-编程技能赛-高职组(国赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·机器人
a努力。13 分钟前
虾皮Java面试被问:JVM Native Memory Tracking追踪堆外内存泄漏
java·开发语言·jvm·后端·python·面试
学习是生活的调味剂25 分钟前
Java IO模型之BIO和NIO分析
java·nio
笙枫33 分钟前
基于AI Agent框架下的能源优化调度方案和实践 |工具函数介绍(详细)
java·人工智能·能源