1、将公共参数配置在当前用户的环境变量,集中管理,方便修改
- 在当前系统用户下配置通用环境变量,编辑 vim ~/.bash_profile
vim ~/.bash_profile
#java
export JAVA_HOME=/opt/jdk1.8.0_60
export JAVA_BIN=${JAVA_HOME}/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN CLASSPATH
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
#nacos
export NACOS_URL=NACOS 连接地址
export NACOS_PORT=8848
export NACOS_ADDR=$NACOS_URL:$NACOS_PORT
export NACOS_CONFIG_NAMESPACE=online
配置好环境变量,重新连接即可生效
- 编写重新启动脚本restart.sh
#!/bin/sh
# param
PROJECT_PATH=$(cd `dirname $0`; pwd)
PROJECT_ALL_LOG_NAME=logs/catalina.log
PROJECT_NAME=$1
# echo
echo '[echo]' 'sh restart.sh'
echo '[echo]' 'Dspring.cloud.nacos.config.server-addr='$NACOS_ADDR
echo '[echo]' 'Dspring.cloud.nacos.config.namespace='$NACOS_CONFIG_NAMESPACE
echo '[echo]' 'JAVA_HOME='$JAVA_HOME
echo '[echo]' 'logs out='$PROJECT_PATH/$PROJECT_ALL_LOG_NAME
#
if [ -z "$PROJECT_NAME" ];then
PROJECT_NAME=$(find . -name '*.jar'|head -1)
if [[ $PROJECT_NAME =~ "/" ]];then
PROJECT_NAME=${PROJECT_NAME##*/}
fi
fi
if [ ! -f "$PROJECT_NAME" ];then
echo "not find jar -> ${PROJECT_NAME}"
exit 0
fi
echo '[echo]' 'path' $PROJECT_PATH'/'$PROJECT_NAME
# stop process
tpid=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo '[echo]' 'Stop Process...'
# 是先关闭和其有关的程序,再将其关闭
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo '[echo]' 'Kill Process!' $tpid
kill -9 $tpid
else
echo '[echo]' 'Stop Success!'
fi
# start process
tpid=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo '[echo]' 'App is already running.'
else
echo '[echo]' 'Please wait a moment. Its starting... '
# echo '[echo]' 'jar' $PROJECT_PATH'/'$PROJECT_NAME
nohup $JAVA_HOME/bin/java\
-Xms128m -Xmx256m\
-Dnacos.use.endpoint.parsing.rule=false\
-Dnacos.use.cloud.namespace.parsing=false\
-Dspring.cloud.nacos.config.server-addr=$NACOS_ADDR\
-Dspring.cloud.nacos.config.namespace=$NACOS_CONFIG_NAMESPACE\
-jar $PROJECT_PATH/$PROJECT_NAME > $PROJECT_PATH/$PROJECT_ALL_LOG_NAME 2>&1 &
sleep 10
echo '[echo]' 'Start Success!'
# tail -f $PROJECT_PATH$PROJECT_ALL_LOG_NAME
fi
- 添加执行权限
chmod +x *.sh
- 将脚本与需要启动的jar放在同一目录下,并创建logs目录
- 启动
./restart.sh