您好,登錄后才能下訂單哦!
最近,要把公司以前的一個(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
免責(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)容。