以项目中测试环境的文件服务为例,启动服务脚本;
1.首先创建startFile.sh启动脚本:
[root@VM-16-3-centos scripts]# cat > startFile.sh
2.赋予脚本文件所有权限:
[root@VM-16-3-centos scripts]# chmod -R 777 startFile.sh
3.编写启动脚本
主体包括四个操作: 1.加载配置 2.停止进程 3.连接数据库(如果服务需要) 4.启动进程
5.查看应用是否正常运行
具体内容如下:
#!/bin/bash
echo "===========ip: `ifconfig | awk 'NR==2{print $2}'` hostname:`hostname`==============="
JAVA_PATH=/opt/Java/jdk1.8.0_211/bin/java
WAR_PATH=/home/acptuser/services-war/file
cd /home/acptuser/services-war/file
WAR_NAME=`ls *file*|awk 'NR==1{print}'`
#停止进程
SERVER_PID=`ps -ef | grep ${WAR_NAME} | grep -v grep | awk '{print $2}'`
if [ ${SERVER_PID} ]; then
echo "will kill $SERVER_PID"
KILL -9 ${SERVER_PID}
else
echo "${WAR_NAME} not running"
fi
#加密数据库密码
JASYPT_JAR=/home/acptuser/services-war/file/jasypt-1.9.2.jar
KEY=*****************
#数据库密码
ENCRIPTED_PWD=**************
#启动进程
if [ -e ${WAR_PATH}/${WAR_NAME} ]; then
cd ${WAR_PATH}
${JAVA_PATH} -Xmx1024m -XX:+UseGlGC -jar ${WAR_NAME} - -spring.profiles.active=prod - -Dspring.config.loaction=applic
ation-prod.yml - -spring.datasource.password="ENC("${ENCRIPTED_PWD}")" - -jasypt.encryptor.password=${KEY}>>run.log 2>&1 &
echo "started"
else
echo "${WAR_PATH}/${WAR_NAME} is not exist"
exit 1
fi
#查看应用
sleep 20s
SERVER_PID=`ps -ef | grep ${WAR_NAME} | grep -v grep | awk '{print $2}'`
if [ ${SERVER_PID} ]; then
echo "${WAR_NAME} is running, PID=${SERVER_PID}"
else
echo "${WAR_NAME} is not running"
exit 1
fi
如图所示:
4.启动脚本即可,等一分钟左右,再测试服务
$./startFile.sh