【发布时间】:2015-03-27 02:29:15
【问题描述】:
我一直在寻找一种方法让我向正在运行的 Java 程序发送命令,但大多数帖子建议实现 listener 或使用 Jetty(或其他服务器)实现包装程序.
有没有办法在不添加额外依赖的情况下做到这一点?
场景是,我有一个将无限期运行的 Java 程序,它会产生一些正在运行的线程。我希望能够运行一个脚本来停止它,当它需要被关闭时,有点像关闭脚本服务器往往有。这将允许我处理程序中的关闭过程。程序在linux环境下运行。
谢谢。
【问题讨论】:
-
你的意思是通过编程还是仅仅从控制台
-
您可以使用
Socket与我们沟通进程,但这假设进程正在侦听或可能将值写入进程正在监视的特定文件... -
这个答案可能会有所帮助:stackoverflow.com/a/2922031/2164109 只需实现一个关闭挂钩,每当您想停止进程时,只需使用 TERM 信号:kill -TERM java_proccess_id跨度>
-
感谢关闭挂钩的链接,会调查它。
-
从这个帖子了解 JMX:stackoverflow.com/questions/191215/… 以前有人用过吗?
标签: java linux multithreading