繁体   English   中英

多次重启后如何唯一标识一个java进程

[英]How to uniquely identify a java process after multiple restart

我的机器上运行了许多 java 进程。 我需要跟踪每个进程重新启动的次数。

例如:让我们考虑两个 java 进程 Process 1 - 它重新启动了 5 次。 进程 2 - 它重新启动了 2 次。

我能够获取正在运行的进程的 PID、java 命令。 但是一旦进程重新启动,我就无法区分。 因为重启后PID变了。 我也不能考虑 java 命令,因为同一应用程序的两个实例具有相同的命令。

那么还有哪些方法可以跟踪java进程重启呢?

您希望您的进程在重新启动后保持相同的身份。 理想情况下,您应该有一个参数、系统属性或环境变量来告诉进程它的身份。

正如您在问题中所述,无法在命令行上传递此身份。 因此,该进程必须通过获取独占资源来“找到”其身份。

这个资源可能是一个实现锁的共享系统,但它可能很复杂。

作为专有资源,我们有网络套接字。 所以你可以让你的进程人为地打开一个套接字,唯一的目标是让它获得一个身份。

您可以使用https://stackoverflow.com/a/116113/2242270中的代码来打开一个范围内的套接字。 进程的身份就是可以打开的端口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM