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

问题描述 投票:1回答:1

我的机器上正在运行许多Java进程。我需要跟踪每个进程重新启动多少次。

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

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

那么跟踪Java进程重启的其他方法还有哪些?

java service process
1个回答
0
投票

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

正如您在问题中指出的那样,此身份不能在命令行上传递。因此,该过程必须通过获取专有资源来“查找”其身份。

此资源可以是实现锁的共享系统,但可能很复杂。

作为专有资源,我们有网络套接字。因此,您可以使过程在唯一的目标中人为地打开套接字以使其获得标识。

您可以使用https://stackoverflow.com/a/116113/2242270中的代码来打开一定范围内的插座。然后,该进程的标识是可以打开的端口。

© www.soinside.com 2019 - 2024. All rights reserved.