gpt4 book ai didi

java - 检测在linux机器上运行的java程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:11 27 4
gpt4 key购买 nike

好的,所以我有几个 Java 程序正在使用 Linux 服务器上的计时作业运行。这些作业每十分钟左右运行一次,实际上需要两分钟才能运行,然后退出。我需要为程序添加一种方法来检测,当它们启动时,是否已经有一个自己的实例在运行,如果是,则退出而不继续。不过,我真的不确定处理这个问题的最佳方法,希望有人能提供一些建议。

我考虑过的一种方法是从执行某种 PS 命令的 Java 代码运行命令行参数,然后查看这些参数以查看它是否正在运行。尽管对于这么小的东西来说,这似乎非常挑剔和复杂。另外,我对 linux 不是很了解,甚至不确定最好的方法。如果有人有更好的想法,请告诉我。或者,如果这是最好的方法,如果您能提供我需要的 linux 命令,我将不胜感激。谢谢。

最佳答案

如果你有一个可写的/tmp 目录,你可以使用一个锁文件。

当您的 Java 程序启动时,检查/tmp 目录中是否有一个名称对您的应用程序唯一的文件(例如“my-lock-file.lock”)。如果不存在,请创建一个,并在完成后将其删除。如果存在,就退出。

您可以使用 java.io.File 类的 .exists() 方法检查文件是否存在。

如果您的代码需要可移植,您可以使用 System.getProperty("java.io.tmpdir")); 为您的代码运行的平台获取适当的临时目录。

关于java - 检测在linux机器上运行的java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11652859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com