编写用于重新启动JVM的bash脚本



我有一个部署在Linux环境中的应用程序,它有两个JVM同时运行。一个是生产者,一个是消费者。

我在ant脚本中编写了不同的停止和启动两个JVM的目标。

有时在重新启动生产者或消费者时,其中一个JVM无法停止,因此我们必须手动找到该特定端口的进程id,终止该进程,然后启动应用程序。

我怎么能把它自动化,并为所有内容编写一个脚本呢。这个脚本应该能够调用ant目标来停止JVM,如果任何JVM没有停止,则终止进程,并最终启动两个JVM。

第一个和最后一个都很好。但是如何编写一些东西,比如根据端口查找进程id,然后执行kill-9。

我是一名Java开发人员,所以对此了解不多。

如果JVM在套接字上通信,请尝试类似的方法

lsof | grep ":$port " | awk '{print $2}'

其中$port是端口号。这将在打开的文件描述符列表中搜索与所需端口号匹配的任何描述符,并吐出进程id。

最新更新