溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

spring boot 配置成 linux service

發(fā)布時(shí)間:2020-07-18 15:02:32 來(lái)源:網(wǎng)絡(luò) 閱讀:410 作者:沙漏半杯 欄目:編程語(yǔ)言

最近,要把公司以前的一個(gè)java application 同步程序修改一下,讓它變成一個(gè)容易部署而且運(yùn)行穩(wěn)健的服務(wù)。


網(wǎng)上找了一下資料,決定動(dòng)手把它變成一個(gè)spring boot項(xiàng)目,理由有3:


(1)易維護(hù);


(2)易部署;


(3)較穩(wěn)??;




做了以下步驟:


1.把它從傳統(tǒng)項(xiàng)目變?yōu)閙aven項(xiàng)目,好處是大家都知的.


2.把它從一般的java application 變?yōu)閟pring boot application.


3.把它部署成Linux的系統(tǒng)服務(wù).


聽(tīng)起來(lái)是容易的,實(shí)際也是容易,只要不做錯(cuò)就行,呵呵。在這里,重點(diǎn)說(shuō)一下第三步.


以下為ubuntu環(huán)境:


(1)先生成spring boot 項(xiàng)目的jar包,往pom.xml里加點(diǎn)料,不然做不了的.


<build>

<plug×××>

? <plugin>

? <groupId>org.apache.maven.plug×××</groupId>

? <artifactId>maven-surefire-plugin</artifactId>

? <version>2.19.1</version>

</plugin>

<plugin>

? ? ? ? ? ? <groupId>org.springframework.boot</groupId>

? ? ? ? ? ? <artifactId>spring-boot-maven-plugin</artifactId>

? ? ? ? ? ? <version>1.5.9.RELEASE</version>

? ? ? ? ? ? <executions>

? ? ? ? ? ? ? ? <execution>

? ? ? ? ? ? ? ? ? ? <goals>

? ? ? ? ? ? ? ? ? ? ? ? <goal>repackage</goal>

? ? ? ? ? ? ? ? ? ? </goals>

? ? ? ? ? ? ? ? </execution>

? ? ? ? ? ? </executions>

? ? ? ? </plugin>

? </plug×××>

? ? </build>

然后用

mvn clean compile //重新編譯


mvn package skipTests //生成包啦


(2)把生成的jar包 oee-sync-tool-0.1.jar copy 到/home/page/soft目錄下


(3)在/etc/systemd/system下創(chuàng)建文件oee-sync-tool.service如下內(nèi)容:


[Unit]

Description=oee-sync-tool Service

After=syslog.target

?

[Service]

ExecStart=/opt/java/jdk1.8.0_131/bin/java -jar /home/page/soft/oee-sync-tool-0.1.jar --spring.profiles.active=dev

SuccessExitStatus=143

?

[Install]

WantedBy=multi-user.target


然后輸入啟動(dòng)服務(wù) :? ?service oee-sync-tool restart

查看服務(wù):service oee-sync-tool status


停止服務(wù):service oee-sync-tool stop


日志嘛,是放在/logs下面的sync-error.log,sync-info.log


(4)大功告成




以下是Centos環(huán)境:


(1)在/etc/init.d下新建一個(gè)oee-sync-tool文件,內(nèi)容如下:




#!/bin/bash

#

# chkconfig: - 57 75

# description: test service

?

ROOT_PATH=/opt/oee/

OEE_SYNC_PID=/opt/oee/oee-sync-tool.pid

start() {

?

? ? ?if [ -f /opt/oee/oee-sync-tool.pid ];then

? ? ? ? ? ? ? ? ? ? SPID=`cat /opt/oee/oee-sync-tool.pid`

? ? ? ? ? ? ? ? ? ? ? if [ "$SPID" != "" ];then

? ? ? ? ? ? ? ? ? ? ? ? ?echo "oee-sync-tool is running.....please check again!"

? ? ? ? ? ? ? ? ? ? ? ? ?echo? $OEE_SYNC_PID

? ? ? ? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? ? ? ? ? echo -n $"Starting $prog: "

? ? ? ? ? ? ? ? ? ? ? ? nohup java -jar /opt/oee/oee-sync-tool-0.1.jar >/dev/null 2>&1 & new_agent_pid=$!

? ? ? ? ? ? ? ? ? ? ? ? echo "$new_agent_pid" > $OEE_SYNC_PID

?

? ? ? ? ? ? ? ? ? ? ? fi

? ? ?else

? ? ? ? ?echo -n $"Starting $prog: "

? ? ? ? ?nohup java -jar /opt/oee/oee-sync-tool-0.1.jar >/dev/null 2>&1 & new_agent_pid=$!

? ? ? ? ?echo "$new_agent_pid" > $OEE_SYNC_PID

? ? ?fi

?

?

?

?

}

?

stop() {

?

? ? ?if [ -f /opt/oee/oee-sync-tool.pid ];then??

? ? ? ? ? ? ? ? ? ? SPID=`cat /opt/oee/oee-sync-tool.pid`??

? ? ? ? ? ? ? ? ? ? ? if [ "$SPID" != "" ];then??

? ? ? ? ? ? ? ? ? ? ? ? ?kill -9? $SPID??

??

? ? ? ? ? ? ? ? ? ? ? ? ?echo? > $OEE_SYNC_PID??

? ? ? ? ? ? ? ? ? ? ? ? ?echo "stop success"??

? ? ? ? ? ? ? ? ? ? ? fi??

? ? ?fi? ? ? ? ??

}

?

??

CheckProcessStata()??

{??

? ? CPS_PID=$1??

? ? if [ "$CPS_PID" != "" ] ;then??

? ? ? ? CPS_PIDLIST=`ps -ef|grep $CPS_PID|grep -v grep|awk -F" " '{print $2}'`??

? ? else??

? ? ? ? CPS_PIDLIST=`ps -ef|grep "$CPS_PNAME"|grep -v grep|awk -F" " '{print $2}'`??

? ? fi??

??

? ? for CPS_i in `echo $CPS_PIDLIST`??

? ? do??

? ? ? ? if [ "$CPS_PID" = "" ] ;then??

? ? ? ? ? ? CPS_i1="$CPS_PID"??

? ? ? ? else??

? ? ? ? ? ? CPS_i1="$CPS_i"??

? ? ? ? fi??

??

? ? ? ? if [ "$CPS_i1" = "$CPS_PID" ] ;then??

? ? ? ? ? ? #kill -s 0 $CPS_i??

? ? ? ? ? ? kill -0 $CPS_i >/dev/null 2>&1??

? ? ? ? ? ? if [ $? != 0 ] ;then??

? ? ? ? ? ? ? ? echo "[`date`] MC-10500: Process $i have Dead"? ?

? ? ? ? ? ? ? ? kill -9 $CPS_i >/dev/null 2>&1??

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? return 1??

? ? ? ? ? ? else??

? ? ? ? ? ? ? ? #echo "[`date`] MC-10501: Process is alive"? ?

? ? ? ? ? ? ? ? return 0??

? ? ? ? ? ? fi??

? ? ? ? fi??

? ? done??

? ? echo "[`date`] MC-10502: Process $CPS_i is not exists"? ?

? ? return 1??

}??

??

status()??

{??

? SPID=`cat /opt/oee/oee-sync-tool.pid`? ?

? CheckProcessStata $SPID >/dev/null??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if [ $? != 0 ];then??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? echo "oee-sync-tool:{$SPID}? Stopped ...."??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? else??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? echo "oee-sync-tool:{$SPID} Running Normal."??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?fi??

??

}??

? ?

restart()??

{??

? ? echo "stoping ... "??

? ? stop??

? ? echo "staring ..."??

? ? start??

}??

? ?

case "$1" in??

? ? start)??

? ? ? ? start??

? ? ? ? ;;??

? ? stop)??

? ? ? ? stop??

? ? ? ? ;;??

? ? status)??

? ? ? ? ?status??

? ? ? ? ;;??

? ? restart)??

? ? ? ? restart??

? ? ? ? ;;??

? ? *)??

? ? ? ? echo $"Usage: $0 {start|stop|restart}"??

? ? ? ? RETVAL=1??

?

echo $"Usage: $0 {start|stop|restart|force-reload}"

exit 2

esac

?

(2)使用命令chkconfig設(shè)置開(kāi)機(jī)啟動(dòng)

? ? ? ??

? ? ? ? chkconfig --add oee-sync-tool


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI