我开发了一个shell脚本,它调用java程序RHEL
环境的main方法。
Shell脚本(比如app.sh
)在tomcat.sh
start:
它将通过调用main方法
stop:
它将获得正在运行的进程ID并终止进程
我已经实现了start
和stop
命令,并期待实现pause命令。
pause:
此选项应获取运行java应用程序的pid并调用非主方法 。
我没有问题来获取进程ID。 但是我可以从运行进程ID中调用java程序的非Main方法吗?
编辑:
How can I call a method in an object from outside the JVM?问题提供了不同技术的解决方案,但除了使用shell脚本之外,我无法转向不同的技术。
答案 0 :(得分:2)
解决方案如下:
SO question that I mentioned in the comments包含所有必要的技术细节。实际上所有的学分应该在那里,我只是重新安排他们的话。
或者在类Unix系统中,包括Linux,您可以为给定的pid(kill -STOP <pid>
)发送SIGSTOP信号,并且在收到SIGCONT(kill -CONT <pid>
)之前,JVM将无条件地停止。但我认为这绝对是一个残酷的解决方案。可能你会失去所有打开的连接等。
答案 1 :(得分:1)
我找到了一个解决方案来摆脱她只调用程序主要方法的脚本的限制。
另一个解决方案:调用一个jsp页面,该页面在暂停选项中使用脚本中的wget命令调用程序A上的远程方法。