java - 将 Spring Boot Web 应用程序作为服务部署到 Ubuntu

标签 java ubuntu spring-boot

我有一个 Spring Boot 应用程序,我想开始使用 System V Init 。我的 jar 文件位于 /var/my-app/my-app-0.0.1-SNAPSHOT.jar 。因此,我使用下面的命令创建了一个符号链接(symbolic link)

sudo ln -s /var/my-app/my-app-0.0.1-SNAPSHOT.jar /etc/init.d/my-app-0.0.1-SNAPSHOT

没有任何问题。然而,当我尝试时

sudo service my-app-0.0.1-SNAPSHOT start

我收到错误:

/etc/init.d/my-app-0.0.1-SNAPSHOT: 1: /etc/init.d/myapp-0.0.1-SNAPSHOT: Syntax error: Unterminated quoted string

有人知道我做错了什么吗?谢谢。

最佳答案

符号链接(symbolic link)与服务有什么关系?没什么:)

您首先必须定义 Upstart 脚本(对于 Ubuntu 14.04 ),它位于/etc/init/中并以 .conf 结尾。 (http://upstart.ubuntu.com/cookbook/)

# <service name>.conf
start on filesystem
exec /usr/bin/java -jar /path_to/program

如果是 Ubuntu 16.06+(你可以找到不错的文章 here )

sudo vim /etc/systemd/system/my-webapp.service

然后你可以运行它:

sudo service <your service name> start

希望有帮助。

关于java - 将 Spring Boot Web 应用程序作为服务部署到 Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401930/

相关文章:

Java - 如果我更改列表中的项目,列表中的对象也会更改吗?

java - 在 int 数组中查找第一个重复项,java

bash - 替换csv文件的多个值

ubuntu - 为什么工作包在删除后会被标记为 'broken'

java - Hazelcast MBean 丢失

java - Spring Boot中请求字段的条件验证

java - Apache Camel 使用 Apache Camel 的 Spring WebFlux 功能性 Web Rest API

java - 从 @ManyToMany 列表中删除对象的正确方法

php - setup-config.php 进入第 1 步然后返回 403 forbidden

mysql - 如何计算通过 docker 动态部署的 MySQL 数据源中的可用空间