从脚本

时间:2017-01-30 00:07:51

标签: java spring spring-boot

使用普通的spring mvn命令,我可以从命令行启动spring boot应用程序并使用Control + c终止它。然而,我已经创建了一系列服务,我将在稍后停靠。现在它们是由mvn生成的普通java jar文件。如何使用python脚本或Bash脚本逐个启动它们,然后使用脚本终止它们。有没有办法我启动它,脚本不会阻止,应用程序将有一个名称,我可以在以后用来停止应用程序?

4 个答案:

答案 0 :(得分:3)

我会按照documentation安装Spring-Boot应用程序作为Unix/Linux服务。

您所要做的就是将此依赖项添加到pom.xml

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <executable>true</executable>
    </configuration>
</plugin>

添加插件后,您应该安装并创建符号链接到您的应用程序(exact part of documentation):

  

假设您安装了Spring Boot应用程序   /var/myapp,将Spring Boot应用程序安装为init.d服务   只需创建一个符号链接:

     

$ sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp

     

安装完成后,   您可以通常的方式启动和停止服务。例如,在a   基于Debian的系统:

     

$ service myapp start

然后,您就可以以干净的方式为您的应用程序startstoprestart创建一个bash脚本。

答案 1 :(得分:2)

您可以使用脚本来实现。例如,startup.sh可能看起来像这样。它将启动应用程序并将进程ID写入/path/to/app/pid.file

#!/bin/bash
nohup java -jar /path/to/app/hello-world.jar > /path/to/log.txt 2>&1 &
echo $! > /path/to/app/pid.file

shutdown.sh可能看起来像这样。

#!/bin/bash
kill $(cat /path/to/app/pid.file)

您可以在我的帖子中找到更多详细信息。 https://springhow.com/start-stop-scripts-for-spring-boot-applications/

答案 2 :(得分:1)

您可以使用以下命令(在bash脚本中)启动每个jar:

java -jar service1.jar &

然后,您可以使用以下命令(在bash脚本中)终止每个进程:

pkill -f service1.jar

pkill将终止包含所提供名称的所有进程。请注意,您的关键字只能识别您的流程,因此您不会错误地终止其他流程。

答案 3 :(得分:0)

此脚本可轻松自动查找jar文件的最新版本:

https://github.com/tyrion9/spring-boot-startup-script

./bootstrap.sh start
./bootstrap.sh stop
./bootstrap.sh restart