2.2.1. Maven run
$ mvn spring-boot:run $ mvn -P prod spring-boot:run
-P 指定 profile
打包后,使用jar包运行
$ mvn verify $ mvn package $ java -jar target/api.netkiller.cn-0.0.1-SNAPSHOT.jar
2.2.2. Linux systemd
/etc/systemd/system/spring.service
#################################################### # Homepage: http://netkiller.github.io # Author: netkiller<netkiller@msn.com> # Script: https://github.com/oscm/shell # Date: 2015-11-03 #################################################### [Unit] Description=Spring Boot Application After=network.target [Service] User=www Group=www Type=oneshot WorkingDirectory=/www/netkiller.cn/api.netkiller.cn ExecStart=/usr/bin/java -jar your_jar_file.jar --spring.config.location=appliction-production.properties --spring.profiles.active=profile #ExecStop=pkill -9 -f RemainAfterExit=yes [Install] WantedBy=multi-user.target
2.2.3. 传统 init.d 脚本
#!/bin/bash ############################################## # Author: netkiller<netkiller@msn.com> # Homepage: http://www.netkiller.cn # Date: 2017-02-08 # $Author$ # $Id$ ############################################## # chkconfig: 345 100 02 # description: Spring boot application # processname: springbootd # File : springbootd ############################################## BASEDIR="/www/netkiller.cn/api.netkiller.cn" JAVA_HOME=/srv/java JAVA_OPTS="-server -Xms2048m -Xmx8192m -Djava.security.egd=file:/dev/./urandom" PACKAGE="api.netkiller.cn-0.0.2-release.jar" CONFIG="--spring.config.location=$BASEDIR/application.properties" USER=www ############################################## NAME=springbootd PROG="$JAVA_HOME/bin/java $JAVA_OPTS -jar $BASEDIR/$PACKAGE $CONFIG" LOGFILE=/var/tmp/$NAME.log PIDFILE=/var/tmp/$NAME.pid ACCESS_LOG=/var/tmp/$NAME.access.log ############################################## function log(){ echo "$(date -d "today" +"%Y-%m-%d %H:%M:%S") $1 $2" >> $LOGFILE } function start(){ if [ -f "$PIDFILE" ]; then echo $PIDFILE exit 2 fi su - $USER -c "$PROG & echo \$! > $PIDFILE" log info start } function stop(){ [ -f $PIDFILE ] && kill `cat $PIDFILE` && rm -rf $PIDFILE log info stop } function status(){ ps aux | grep $PACKAGE | grep -v grep | grep -v status log info status } function reset(){ pkill -f $PACKAGE [ -f $PIDFILE ] && rm -rf $PIDFILE log info reset } case "$1" in start) start ;; stop) stop ;; status) status ;; restart) stop start ;; log) tail -f $LOGFILE ;; reset) reset ;; *) echo $"Usage: $0 {start|stop|status|restart|log|reset}" esac exit $?
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。
时间: 2024-10-26 02:33:02