start.sh
- 定义变量: 服务名/部署路径/服务输出日志路径/启动文件路径
- 检查是否启动: 使用 ps /grep/awk命令 配合 | 一起使用 没启动继续下面的
- 设置JVM参数: JAVA_OPTS
- 后台启动应用: nohup java -jar 命令
- 再次检查是否启动
- shell脚本示例:
#!/bin/bash
#启动服务名称
SERVER_NAME=test
#服务部署路径
DEPLOY_DIR=/opt/app/test
# 服务日志输出路径
STDOUT_FILE=${DEPLOY_DIR}/logs/test.log
#服务启动的jar或war
WAR_FILE=${DEPLOY_DIR}/test.jar
PIDS=`ps -f | grep java | grep "${DEPLOY_DIR}" |awk '{print $2}'`
if [ -n "$PIDS" ]; then
echo ">>> ERROR: The ${SERVER_NAME} already started!"
echo ">>> PID: $PIDS"
exit 1
fi
#jvm参数配置
JAVA_OPTS="-server -Xmx2g -Xms2g "
echo -e ">>> Starting the ${SERVER_NAME} ...\c"
nohup java $JAVA_OPTS -jar ${WAR_FILE} > $STDOUT_FILE 2>&1 &
COUNT=0
while [ $COUNT -lt 1 ]; do
echo -e ".\c"
sleep 1
COUNT=`ps -f | grep java | grep "${DEPLOY_DIR}" | awk '{print $2}' | wc -l`
if [ $COUNT -gt 0 ]; then
break
fi
done
PIDS=`ps -f | grep java | grep "${DEPLOY_DIR}" | awk '{print $2}'`
echo "OK ! -->>> PID: $PIDS -->>> STDOUT: $STDOUT_FILE "
stop.sh
- 定义变量: 部署服务路径/停止服务名称
- 检查是否启动: 使用 ps /grep/awk命令 配合 | 一起使用 启动继续下面的
- kill掉进程
- 再次检查进程是否存在
- shell脚本示例:
#!/bin/bash
#服务部署路径
DEPLOY_DIR=/opt/app/test
#停止服务名称
SERVER_NAME=test
PIDS=`ps -ef | grep java | grep "${DEPLOY_DIR}" |awk '{print $2}'`
if [ -z "$PIDS" ]; then
echo ">>> ERROR: The $SERVER_NAME does not started!"
exit 1
fi
echo -e ">>> Stopping the $SERVER_NAME ...\c"
for PID in $PIDS ; do
kill $PID > /dev/null 2>&1
done
COUNT=0
while [ $COUNT -lt 1 ]; do
echo -e ".\c"
sleep 1
COUNT=1
for PID in $PIDS ; do
PID_EXIST=`ps -f -p $PID | grep java`
if [ -n "$PID_EXIST" ]; then
COUNT=0
break
fi
done
done
echo "OK! -->>> PID: $PIDS"