gpt4 book ai didi

java - shell脚本调用非main方法运行java程序

转载 作者:行者123 更新时间:2023-11-29 04:47:50 31 4
gpt4 key购买 nike

我开发了一个shell脚本,它调用java程序RHEL环境的main方法。

Shell 脚本(例如 app.sh)在 tomcat.sh 的行上有多个选项

start: 调用main方法启动java程序

stop: 获取正在运行的进程id并终止进程

我已经实现了startstop 命令并期待实现暂停命令。

pause: 此选项应该获取正在运行的 java 应用程序的 pid 并调用非 Main 方法

获取进程 ID 没有问题。 但是我可以从正在运行的进程id调用java程序的非Main方法吗?

编辑:

How can I call a method in an object from outside the JVM?问题提供了不同技术的解决方案,但除了使用 shell 脚本之外我不能转向不同的技术。

最佳答案

解决方案如下:

  1. 照常创建服务。
  2. 该服务通过 JMX 公开了许多方法或者简单地通过监听 TCP/unix 域套接字来获取一组有限的已知命令。
  3. 当需要控制时,服务一个专用进程(大概是一个用 Java 编写的实用程序,与服务分开)通过指定的命令 channel 发出所需的命令。

SO question that I mentioned in the comments包含所有必要的技术细节。实际上所有的学分都应该在那里给出,我只是重新排列他们的话。

或者,在类 Unix 系统中,包括 Linux,您可以为给定的 pid ( kill -STOP <pid> ) 发送 SIGSTOP 信号,并且 JVM 将无条件停止,直到收到 SIGCONT ( kill -CONT <pid> )。但我想这将是一个极其残酷的解决方案。您可能会丢失所有打开的连接等。

关于java - shell脚本调用非main方法运行java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448342/

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