<分区>
Possible Duplicate:
java/shellscript code to find out if a jar file is already running on current machine
我很想为此获得一个跨平台的解决方案,但即使它只是 unix 也很好。
简单的解决方案是从 shell(伪代码)执行此操作(如果 ps -aux | grep myJar | print {awk 2}。包含 myPID,请不要运行 myProgram。
现在不幸的是,我们的 linux 团队不希望在生产环境中运行这样的脚本,因为它可能(无可否认)有不良行为。
所以我需要的是能够运行一个文件,并在它运行时查看是否有另一个程序正在运行。如果程序已经在运行并且低于该时间限制,它应该阻止程序运行。
举个例子:
Myprog.jar -- 超时 5 分钟
Myprog.jar 在 cron 中,每 4 分钟调用一次,
第一次调用它启动,第二次调用它还在运行,但是由于没有超时,所以还好。
如果在第三次检查通过时(在执行后 8 分钟)它仍在运行,它就会被杀死,然后它的进程被自己替换。
如果有人能帮助我理解如何做到这一点(我们一直在尝试设置一个锁定文件,但收效甚微)
谢谢!