生产环境有个工程进程能起来(有pid),但是没有端口监听,工程日志没有明显报错,看不出原因。
想了下,有如下三种排查方法:
1 既然工程有问题,那么就应该抛错误,调节一下工程的日志级别到 debug
2 用jstack根据pid打印堆栈信息看
3 用strace跟踪pid,可以具体到函数调用
最终通过 jstack打印堆栈信息,有rabbitMQ 消息队列协议相关字眼,是rabbitmq内部出问题了(外面看不出),重启一下rabbitMQ ,再重启工程就可以了!
至于 rabbitMQ 为什么会有问题,需要结合 相关生产者、消费者具体看下来了。
参考
jstack问题定位分析
https://zhuanlan.zhihu.com/p/162927548
https://www.cnblogs.com/soft-engineer/p/15101913.html
Linux 使用strace命令查找进程卡死原因
https://mp.weixin.qq.com/s/nRZ8cEqaJeeEnQVDLrkIhg
Linux系统调用追踪工具strace
https://mp.weixin.qq.com/s/7gS4en2U0Dinp8d9ep6P8g
Linux神器strace的使用方法及实践
https://zhuanlan.zhihu.com/p/180053751
Linux后门之strace后门键盘记录
https://baijiahao.baidu.com/s?id=1692828500047439400&wfr=spider&for=pc
网友评论