Linux-systemctl启停项目

115 阅读1分钟

使用systemctl启停项目

systemctl脚本

  1. /usr/lib/systemd/system/light-order-service.service
[Unit]
Description=refund-service
After=syslog.target network.target

[Service]
Type=forking
Restart=on-failure
ExecStart=/opt/monitor/sbin/refund-service-startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
#ExecStop=/opt/monitor/sbin/refund-service-shutdown.sh
PrivateTmp=true
RestartSec=10s
[Install]
WantedBy=multi-user.target

启停脚本

  1. /opt/monitor/sbin/springcloud-startup.sh
#!/bin/bash
if [ $# -ne 2 ]; then
    echo "error.. need args!"
    echo "eg: startup.sh light-order-service 8080"
    exit 1
fi

CATALINA_HOME="/data/opt/$1"
SERVICE_NAME="$1"
SERVER_PORT="$2"
JAR_NAME="/data/opt/${SERVICE_NAME}/springcloud-${SERVICE_NAME}.jar"

#export JAVA_HOME=/data/jdk/jdk1.8.0_191/
export JAVA_HOME=/opt/jdk/
export PATH=$JAVA_HOME/bin:$PATH

export JAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx256m -Xss256k -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Dspring.application.name=${SERVICE_NAME} -Dserver.port=$SERVER_PORT"

export JAVA_OPTS="$JAVA_OPTS -Dlog4j2.formatMsgNoLookups=true -Dlight.logs.path=/data/log/java_springcloud -Dreactor.netty.pool.leasingStrategy=lifo -Drocketmq.client.logLevel=warn"

nohup java -jar ${JAVA_OPTS} -Dspring.config.additional-location=/opt/bootstrap.yml ${JAR_NAME}  >/dev/null 2>&1 &
rc=$?
SPID=$!
echo $SPID > "/data/opt/${SERVICE_NAME}/springcloud-${SERVICE_NAME}.pid"
echo "`date` /data/opt/${SERVICE_NAME}/springcloud-${SERVICE_NAME}.pid  has been created."
  1. /opt/monitor/sbin/springcloud-shutdown.sh
#!/bin/bash
if [ $# -ne 1 ]; then
    echo "error.. need args!"
    echo "eg: service-shutdown.sh light-order-service"
    exit 1
fi

SERVICE_NAME="$1"
CATALINA_HOME="/data/opt/$1"

cd `dirname $0`
echo "$(date) enter directory: `pwd`"

PID=`cat $CATALINA_HOME/springcloud-$SERVICE_NAME".pid"`

if [ "$PID" == "" ];then
  echo "$(date) There has no pid file, Server shutdown failed."
  exit 1;
else
  kill -2 "$PID"
  rm -f $CATALINA_HOME/springcloud-$SERVICE_NAME".pid"
  echo "$(date) Server has been shutdown!"
  exit 0;
fi

加载systemctl

systemctl daemon-reload