问题场景
入职公司,基建有待提高,考虑将命令行部署服务进行脚本自动化。
分析
写了find.sh、findAndKill.sh、start.sh 3个脚本实现
find.sh
jarName='business-start-1.0.0.jar'
pid=$(echo `ps -ef | grep $jarName` | cut -d' ' -f2)
echo "pid $pid"
if [ -n "$pid" ]
then
echo "$jarName STARTED"
else
echo "NOT FOUND $jarName"
fi
findAndKill.sh
jarName='business-start-1.0.0.jar'
pid=$(echo `ps -ef | grep $jarName` | cut -d' ' -f2)
echo "pid $pid"
if [ -n "$pid" ]
then
echo "WARNNING... start to kill $pid"
kill $pid
echo "pid $pid is killed"
else
echo "NOT FOUND $jarName"
fi
start.sh
jarName='business-start-1.0.0.jar'
# start daemon
nohup java -XX:+UseG1GC -Xmx10240m -XX:MaxGCPauseMillis=200 -jar $jarName > /dev/null 2>&1 &
#waitting for jar start
sleep 3s
#get pid
pid=$(echo `ps -ef | grep $jarName` | cut -d' ' -f2)
echo "pid $pid"
# not empty
if [ -n "$pid" ]
then
echo "$jarName STARED"
else
echo "NOT FOUND $jarName"
fi