英文:
How do check if someone is connected to debug port, or is actively debugging
问题
我们有一个运行在Tomcat7上的Java 11应用程序,有几个开发人员并行工作。在DEV环境中,一些调试端口是公开的。有时,用户可能会连接到调试端口,然后忘记关闭连接,导致连接保持打开状态,并且一些活动的调试点导致应用程序暂停所有涉及该流程的处理。
我想知道以下选项是否可行:
- 使用JMX或甚至自定义的Java代码,可以在Tomcat上以REST方式公开,以检查是否有人正在活动调试(明确一下,我不是指调试选项是否已启用,而是是否有人实际连接到该端口)。
- 获取用户名或一些用户标识。也许是连接请求起源的机器?
- 在固定时间后自动关闭调试连接?
英文:
We have a Tomcat7 Java 11 application on which a few developers work in parallel. This has some debug ports exposed in DEV stability. Sometimes, a user might connect to the debug port and end up forgetting to close the connection, and leaves the connection open, with some active debug points causing the application to pause all processing which involves that flow.
I was wondering if the following options are possible:
- Use JMX or even custom Java code which can be exposed restfully on Tomcat to check is someone is actively debugging (to be clear, I don't mean if debug options are enabled, but if someone is actually connected to that port)
- Get username or some identification for the user. Maybe the machine from which connection request originated?
- Automatically close debug connection after some fixed time?
答案1
得分: 1
如果您的应用程序在Linux上运行
- 打开终端,
- 运行
ss -tn src :debugPort
- 在“Peer Address:Port”下,您将找到连接到您的应用程序的主机。
- 然后使用
tcpkill ip host 192.168.1.2
终止连接。
英文:
If you have app running on Linux
- Go to terminal,
- Run
ss -tn src :debugPort
- Under
Peer Address:Port
you will find the host connected to your app. - Then use
tcpkill ip host 192.168.1.2
to end the connection.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论