#!/bin/sh ulimit -HSn 65534 APP_HOME=$(cd $(dirname $0)/..; pwd) echo "APP_HOME : $APP_HOME" cd $APP_HOME mkdir -p ${APP_HOME}/logs #创建日志目录 PID_FILE="$APP_HOME/logs/app.pid" JAR_NAME="$APP_HOME/lib/game-cross-1.0.jar" JAVA_OPTS="-server -Xms512m -Xmx512m -Xmn128m -XX:SurvivorRatio=4 -XX:InitiatingHeapOccupancyPercent=75" JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC -XX:+UseConcMarkSweepGC" JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+HeapDumpOnOutOfMemoryError -Xloggc:logs/flash_gc_$(date +"%Y%m%d%H%M").log" LOG4J2_FILE="$APP_HOME/conf/log4j2.xml" echo "Using APP_HOME: $APP_HOME" > ${APP_HOME}/logs/app.out echo "Using JAVA_OPTS: $JAVA_OPTS" >> ${APP_HOME}/logs/app.out echo "Using PID_FILE: $PID_FILE" >> ${APP_HOME}/logs/app.out #查询是否有进程已经执行 echo "查询是否有进程已经执行" if [ -e $PID_FILE ]; then echo "prepare kill pid `cat $PID_FILE`" kill -15 `cat $PID_FILE` echo "killed pid `cat $PID_FILE`" rm $PID_FILE else echo "$PID_FILE not exist" fi echo "检索完毕" #启动程序 java -jar $JAVA_OPTS -Dlog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j.configurationFile=$LOG4J2_FILE $JAR_NAME >> ${APP_HOME}/logs/app.out 2>&1 & echo $! > $PID_FILE echo "启动服务器成功"