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

要进行远程调试,主要是对 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. 调试完成后恢复原配置
相关推荐
❥ღ Komo·2 小时前
K8s蓝绿发布实战:零停机部署秘籍
java·开发语言
小安同学iter2 小时前
天机学堂-排行榜功能-day08(六)
java·redis·微服务·zset·排行榜·unlink·天机学堂
hgz07102 小时前
Spring Boot Starter机制
java·spring boot·后端
daxiang120922052 小时前
Spring boot服务启动报错 java.lang.StackOverflowError 原因分析
java·spring boot·后端
我家领养了个白胖胖2 小时前
极简集成大模型!Spring AI Alibaba ChatClient 快速上手指南
java·后端·ai编程
jiayong232 小时前
Markdown编辑完全指南
java·编辑器
heartbeat..3 小时前
深入理解 Redisson:分布式锁原理、特性与生产级应用(Java 版)
java·分布式·线程·redisson·
一代明君Kevin学长3 小时前
快速自定义一个带进度监控的文件资源类
java·前端·后端·python·文件上传·文件服务·文件流
未来之窗软件服务3 小时前
幽冥大陆(四十九)PHP打造Java的Jar实践——东方仙盟筑基期
java·php·jar·仙盟创梦ide·东方仙盟·东方仙盟sdk·东方仙盟一体化