java/shellscript代码,用于查明jar文件是否已在当前计算机上运行

Arv*_*ind 5 java shell jar process executable-jar

如何确定我的计算机上是否正在运行特定的JAR文件?我只是想确保一个特定的JAR只在任何时候执行一次 - 所以如果另一个执行相同jar的请求进来,那么我不应该再次调用那个jar.

我可以使用上面的代码作为java代码(我将添加到JAR本身)或shellcript(我将用于调用jar文件).

该机器将是Linux机器 - CentOS,Debian或Ubuntu或Amazon Linux.

Bri*_*new 6

jps是一个简单的命令行工具,可以打印出当前运行的JVM以及它们正在运行的内容.您可以从shell脚本调用它.

jps -l将转储JVM进程ID及其正在执行的主类.我怀疑这是最符合您要求的.

注意到你的评论.jps不受支持,如果有效的担心是在升级JDK/JRE时无法通过测试轻松缓解,那么可能会使用以下内容:

pgrep -lf java
Run Code Online (Sandbox Code Playgroud)