我在linux服务器上的某个/dev/ExampleApplication.jar目录下有一个Spring Boot JAR。
Spring Boot应用程序是否可以监视特定JAR的更新(可能是校验和的更改),如果有更新,则关闭自身并启动更新后的JAR?
我想要一些伪代码形式的东西:
@Scheduled(fixedDelay = 1000)
public void checkForUpdates() {
long fileChecksum = getJarChecksum();
if (checksum != fileChecksum) {
command("java -jar /dev/ExampleApplication.jar");
context.shutdown();
}
}发布于 2019-09-24 05:46:23
您可以在jar文件被删除或更改时使用inotify-tools重新启动它。
您需要在您的Linux发行版上安装inotify-tools (如果尚未安装)。
while inotifywait -e close_write /dev/ExampleApplication.jar; do java -jar /dev/ExampleApplication.jar; done-e参数采用事件类型。您还可以查看某个目录,以查看是否在该目录中删除或创建了任何内容。有关inotifywait事件类型的更多信息,请参阅此处:https://linux.die.net/man/1/inotifywait
https://stackoverflow.com/questions/58069833
复制相似问题