最近,要把公司以前的一个java application 同步程序修改一下,让它变成一个容易部署而且运行稳健的服务。
同安网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联建站从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。网上找了一下资料,决定动手把它变成一个spring boot项目,理由有3:
(1)易维护;
(2)易部署;
(3)较稳健;
做了以下步骤:
1.把它从传统项目变为maven项目,好处是大家都知的.
2.把它从一般的java application 变为spring boot application.
3.把它部署成Linux的系统服务.
听起来是容易的,实际也是容易,只要不做错就行,呵呵。在这里,重点说一下第三步.
以下为ubuntu环境:
(1)先生成spring boot 项目的jar包,往pom.xml里加点料,不然做不了的.
然后用
mvn clean compile //重新编译
mvn package skipTests //生成包啦
(2)把生成的jar包 oee-sync-tool-0.1.jar copy 到/home/page/soft目录下
(3)在/etc/systemd/system下创建文件oee-sync-tool.service如下内容:
[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
然后输入启动服务 : service oee-sync-tool restart
查看服务:service oee-sync-tool status
停止服务:service oee-sync-tool stop
日志嘛,是放在/logs下面的sync-error.log,sync-info.log
(4)大功告成
以下是Centos环境:
(1)在/etc/init.d下新建一个oee-sync-tool文件,内容如下:
#!/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设置开机启动
chkconfig --add oee-sync-tool
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。