在 Linux 系统上安装 Spring Boot 应用程序

Posted

技术标签:

【中文标题】在 Linux 系统上安装 Spring Boot 应用程序【英文标题】:Installing Spring Boot Application on Linux System 【发布时间】:2018-03-16 19:11:48 【问题描述】:

环境:

弹簧靴 1.5.2 linux 红帽

我用过Spring Docu:

https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html

于是我创建了一个符号链接 (etc/init.d/myService)。并且everythink工作正常。我可以通过以下方式控制我的服务: sudo service myService start|stop|staus

但不幸的是,我不允许在 /etc/init.d 中放置符号链接

我试图在 /etc/init.d 中放置一个脚本 myService,而这个脚本只包含一行:

/work/springBoot/myService.jar

但是现在当我进入时

sudo service myService 状态

spring boot 应用程序启动。并且不显示状态。那我该怎么办?

【问题讨论】:

我认为您必须遵循 sysvinit 约定。我猜你的红帽没有使用 systemd systemd 不是一个选项 - “遵循 sysvinit 约定”是什么意思 【参考方案1】:

这对我有用:

#!/bin/bash
# chkconfig: 345 20 80
SPRING_BOOT_JAR=myService-0.1.1.jar
SPRING_BOOT_DIR=/work/springboot/myService
EXECUTABLE=$SPRING_BOOT_DIR/$SPRING_BOOT_JAR

export OUT_LOG="$SPRING_BOOT_DIR/out.log"
export MODE="service"

start() 

echo "Start was called for " + $EXECUTABLE
nohup $SPRING_BOOT_DIR/$SPRING_BOOT_JAR start > $OUT_LOG 2>&1 &



stop() 

echo "Stop was called for " + $EXECUTABLE
$SPRING_BOOT_DIR/$SPRING_BOOT_JAR stop



status() 

echo "Status was called for " + $EXECUTABLE
$SPRING_BOOT_DIR/$SPRING_BOOT_JAR "status"



case "$1" in

start)
    start
    ;;
stop)
    stop
    ;;
status)
    status
    ;;
*)
    echo "Please use start|stop|status"
    exit 1
    ;;
esac

exit

诀窍是

export MODE="service"

【讨论】:

以上是关于在 Linux 系统上安装 Spring Boot 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

spring boot连接linux服务器上的redis

Linux系统CentOS 7配置Spring Boot运行环境

Linux(CentOS 7) 部署Spring Boot 打包的jar文件

Linux(CentOS 7) 部署Spring Boot 打包的jar文件

将Spring Boot应用程序注册成为系统服务

Spring boot 整合redis 加 腾讯云杂项