springboot linux启动方式

本文介绍了SpringBoot应用在Linux环境下的启动方式,包括前台启动、后台启动及通过shell脚本启动的方法,并详细解释了每种启动方式的特点及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot linux启动方式

前台启动

java -jar XXX.jar

 

后台启动

java -jar xxx.jar &

 

区别:前台启动ctrl+c就会关闭程序,后台启动ctrl+c不会关闭程序

制定控制台的标准输出

java -jar xxx.jar > catalina.out  2>&1 & 

 

  • catalina.out将标准输出指向制定文件catalina.out
  • 2>&1 输出所有的日志文件
  • & 后台启动

 脚本启动

复制代码
#!/bin/sh
#功能简介:启动上层目录下的jar文件
#参数简介:
#    $1:jar文件名(包含后缀名)
#    注意:jar文件必须位于startup.sh目录的上一层目录。

#启动参数
JAVA_OPTS="-server -Xms400m -Xmx400m -Xmn300m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xverify:none -XX:+DisableExplicitGC -Djava.awt.headless=true"

jar_name=$1
this_dir="$( cd "$( dirname "$0"  )" && pwd )"
parent_dir=`dirname "${this_dir}"`
log_dir="${parent_dir}/logs"
log_file="${log_dir}/catalina.out"
jar_file="${parent_dir}/userapps/${jar_name}"

#参数个数<1或者参数空值时,中断执行
if [ $# -lt 1 ] || [ -z $1 ]; then
    echo -e "\033[31m请输入要部署的jar包名称!\033[0m"
    exit 1
fi

#日志文件夹不存在,则创建
if [ ! -d "${log_dir}" ]; then
    mkdir "${log_dir}"
fi

#父目录下jar文件存在
if [ -f "${jar_file}" ]; then
    #启动jar包;重定向标准错误输出到文件,丢掉标准输出
    java $JAVA_OPTS -jar ${jar_file} 1>/dev/null 2>"${log_file}" &
    exit 0
else
    echo -e "\033[31m${jar_file}文件不存在!\033[0m"
    exit 1
fi
复制代码

 

 启动方式

./startup.sh xxx.jar

 

说明

 转载自:http://www.cnblogs.com/woms/p/6145688.html

### 配置Spring Boot应用的启动文件 #### 使用Init.d脚本管理Spring Boot服务 为了使Spring Boot应用程序能够在Linux环境中作为一个服务运行,可以通过编写`/etc/init.d/`下的初始化脚本来实现这一点[^1]。下面是一个简单的示例脚本: ```bash #!/bin/sh ### BEGIN INIT INFO # Provides: myapp # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO APP_NAME="my-spring-boot-app" DAEMON_USER=someuser INSTALL_PATH=/opt/$APP_NAME/ PIDFILE=/var/run/$APP_NAME.pid LOGS_DIR=$INSTALL_PATH/logs/ case "$1" in start) echo "Starting $APP_NAME..." start-stop-daemon --start \ --chuid $DAEMON_USER \ --exec java -jar $INSTALL_PATH/my-application.jar >>$LOGS_DIR/stdout.log 2>>$LOGS_DIR/stderr.log & ;; stop) echo "Stopping $APP_NAME..." kill `cat $PIDFILE` rm -f $PIDFILE ;; restart|force-reload) ${0} stop sleep 5 ${0} start ;; *) N=/etc/init.d/$APP_NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 ``` 此脚本定义了如何启动、停止以及重启名为`my-spring-boot-app`的应用程序。 #### 利用Systemd单元文件控制Spring Boot进程 对于现代Linux发行版而言,更推荐的方式是通过创建systemd服务单元来管理和监控Spring Boot应用程序的状态。这里给出一个基本的服务单元配置模板: ```ini [Unit] Description=My Spring Boot Application Service After=syslog.target [Service] User=someuser ExecStart=/usr/bin/java -jar /opt/my-spring-boot-app/my-application.jar SuccessExitStatus=143 Restart=on-failure StandardOutput=file:/opt/my-spring-boot-app/logs/output.log StandardError=file:/opt/my-spring-boot-app/logs/error.log [Install] WantedBy=multi-user.target ``` 保存上述内容到`/etc/systemd/system/my-spring-boot-app.service`之后,就可以利用`systemctl`命令来进行常规操作了,比如启用开机自启(`systemctl enable my-spring-boot-app`)或立即启动该服务(`systemctl start my-spring-boot-app`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值