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

要进行远程调试,主要是对 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. 调试完成后恢复原配置
相关推荐
andongni2038 分钟前
Spring Boot基础应用开发与部署
java·spring boot·后端
lupai14 分钟前
增值税发票 OCR 识别 API 新手接入指南
java·前端·ocr
TELL52115 分钟前
Sonar质量门禁
java
java修仙传18 分钟前
从网页禅道到 AI 能调用的工具:我的禅道 MCP 实现思路分享
java·人工智能·python·ai应用·mcp开发
HAYDENR19 分钟前
依赖数据迁移工具做增量同步有哪些易错点?调整数据迁移工具策略怎么保证断点续传可靠?
java·大数据·数据库
IT利刃出鞘31 分钟前
SpringBoot--解决@Valid放在接口的List上时无效的问题
java·spring
mqiqe35 分钟前
AgentScope Java Harness:2. 上下文压缩:让长期 Agent 永不“失忆“
java·开发语言
梦想的旅途239 分钟前
企业微信API实战:Python自动化消息推送
java·前端·python·自动化·企业微信
YOU OU39 分钟前
RabbitMQ运维
java·rabbitmq·java-rabbitmq
mldong44 分钟前
流程定义设计:一份 LogicFlow JSON 全解
java·架构