Nohup 部署更新升级Java后端项目
#!/bin/bash
JAR_NAME="lit-message.jar"
JAR_PATH="/tmp/$JAR_NAME"
TARGET_DIR="/tmp/"
PID_FILE="nohup.pid"
LOG_FILE="LitMessage.log"
if [ -f "/mnt/000.Docker/003.Lit-Message/$PID_FILE" ]; then
read -r pid < "/mnt/000.Docker/003.Lit-Message/$PID_FILE"
if kill -0 "$pid" 2>/dev/null; then
kill "$pid"
echo "Old process with PID $pid terminated."
else
echo "No process found with PID $pid."
fi
rm -f "/mnt/000.Docker/003.Lit-Message/$PID_FILE"
fi
rm -f "/mnt/000.Docker/003.Lit-Message/$JAR_NAME"
cp "$JAR_PATH" "/mnt/000.Docker/003.Lit-Message/"
nohup java -jar "/mnt/000.Docker/003.Lit-Message/$JAR_NAME" --spring.active=dev > "/mnt/000.Docker/003.Lit-Message/$LOG_FILE" 2>&1 &
echo $! > "/mnt/000.Docker/003.Lit-Message/$PID_FILE"
echo "New process started with PID $!"
#!/bin/bash
SERVER_NAME="manager"
JAR_NAME="argusdbm.jar"
cd `dirname $0`
BIN_DIR=`pwd`
cd ..
DEPLOY_DIR=`pwd`
CONF_DIR=$DEPLOY_DIR/config
SERVER_PORT=1159
PIDS=`ps -ef | grep java | grep "$CONF_DIR" | awk '{print $2}'`
if [ "$1" = "status" ]; then
if [ -n "$PIDS" ]; then
echo "The ArgusDBM $SERVER_NAME is running...!"
echo "PID: $PIDS"
exit 0
else
echo "The ArgusDBM $SERVER_NAME is stopped"
exit 0
fi
fi
if [ -n "$PIDS" ]; then
echo "ERROR: The ArgusDBM $SERVER_NAME already started!"
echo "PID: $PIDS"
exit 1
fi
if [ -n "$SERVER_PORT" ]; then
SERVER_PORT_COUNT=`netstat -tln | grep :$SERVER_PORT | wc -l`
if [ $SERVER_PORT_COUNT -gt 0 ]; then
echo "ERROR: netstat the ArgusDBM $SERVER_NAME port $SERVER_PORT already used!"
exit 1
fi
LSOF_AVA=`command -v lsof | wc -l`
if [ $LSOF_AVA -gt 0 ]; then
SERVER_PORT_COUNT=`lsof -i:$SERVER_PORT | grep java | wc -l`
if [ $SERVER_PORT_COUNT -gt 0 ]; then
echo "ERROR: lsof the ArgusDBM $SERVER_NAME port $SERVER_PORT already used!"
exit 1
fi
fi
fi
LOGS_DIR=$DEPLOY_DIR/logs
if [ ! -d $LOGS_DIR ]; then
mkdir $LOGS_DIR
fi
JAVA_OPTS=" -Duser.timezone=Asia/Shanghai"
JAVA_MEM_OPTS=" -server -XX:SurvivorRatio=6 -XX:+UseParallelGC "
LOG_IMPL_FILE=logback-spring.xml
LOGGING_CONFIG=""
if [ -f "$CONF_DIR/$LOG_IMPL_FILE" ]
then
LOGGING_CONFIG="-Dlogging.config=$CONF_DIR/$LOG_IMPL_FILE"
fi
CONFIG_FILES=" -Dlogging.path=$LOGS_DIR $LOGGING_CONFIG -Dspring.config.location=$CONF_DIR/ "
echo -e "You can review logs at ArgusDBM/logs"
echo -e "Starting the ArgusDBM $SERVER_NAME ..."
nohup /opt/xc/jdk11/jdk-11.0.1/bin/java $JAVA_OPTS $JAVA_MEM_OPTS $CONFIG_FILES -jar $DEPLOY_DIR/$JAR_NAME >logs/startup.log 2>&1 &
COUNT=0
while [ $COUNT -lt 1 ]; do
echo "... "
sleep 1
if [ -n "$SERVER_PORT" ]; then
COUNT=`netstat -an | grep $SERVER_PORT | wc -l`
else
COUNT=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`
fi
if [ $COUNT -gt 0 ]; then
break
fi
done
echo "Service Start Success!"
PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
echo "Service PID: $PIDS"
评论区