linux 启动java进程 sh文件

#!/bin/bash
#初始化服务器的进程PId变量
user_pid=0;
robot_pid=0;
loadlort_pid=0;
gateway_pid=0;

#########
#检查相关服务器是否启动成功
#说明:
#使用JDK自带的JPS命令及grep命令组合,准确查找pid
#jps 加 l 参数,表示显示java的完整包路径
#使用awk,分割出pid ($1部分),及Java程序名称($2部分)
############
check_is_start(){
  for((i=1;i<10;i++));do
     temp_javaps=`$JAVA_HOME/bin/jps -l | grep $1`;

     if [ -n "$temp_javaps" ]; then
        temp_pid=`echo $temp_javaps | awk '{print $1}'`;

	if [ "$temp_pid" -eq 0 ];then
	   echo "$2 service start failure";
	   exit 0;
	else
          echo "$2 service is starting......";
        fi
     else
       echo "$2 service start failure";
       exit 0;
     fi
     sleep 3;
  done
  temp_javaps=`$JAVA_HOME/bin/jps -l | grep $1`;

  if [ -z "$temp_javaps" ];then
    echo "$2 service start failure";
    exit 0;
  fi
  temp_pid=`echo $temp_javaps | awk '{print $1}'`;

  if [ "$temp_pid" -eq 0 ] ; then
    echo "$2 service start failuret";
    [[ -z $(lsof -i:$3) ]]&&echo "port is not linster"||echo "port is linster"
    exit 0;
  else
    echo "$2 service start succeed";
  fi
}
#########
#停止服务器
#########
stop_service(){
    temp_javaps=`$JAVA_HOME/bin/jps -l | grep $1`;

    if [ -n "$temp_javaps" ]; then
      temp_pid=`echo $temp_javaps | awk '{print $1}'`;

      if [ "$temp_pid" -eq 0 ];then
	 echo "$1 service is not starting......";
      else
	 su - root -c "kill -15 $temp_pid"
	 echo "$1 stop already"
      fi
    fi
}

###################################
#启动服务器
###################################
start(){
    ###################################
    #启动用户服务器
    #
    #检查用户服务器是否启动成功
    #监听端口6664
    ###################################
    cd user;
    ./start.sh;
    check_is_start server-user-0.0.1-SNAPSHOT.jar user 6664;

    ###################################
    #启动机器人服务器
    #
    #启动之后调用check_is_start 检查是否启动成功
    #监听端口6664
    ###################################
    cd ../robot;
    ./start.sh;
    check_is_start server-robot-0.0.1-SNAPSHOT.jar robot 6656;

    ###################################
    #启动斗地主服务器
    #
    #启动之后调用check_is_start 检查是否启动成功
    #监听端口6664
    ###################################
    cd ../loadlort;
    ./start.sh;
    check_is_start server-game-0.0.1-SNAPSHOT.jar game 6668;

    ###################################
    #启动网管服务器
    #
    #启动之后调用check_is_start 检查是否启动成功
    #监听端口6664
    ###################################
    cd ../gateway;
    ./start.sh;
    check_is_start server-gateway-0.0.1-SNAPSHOT.jar gateway 9092;
}

###################################
#停止服务器
###################################
stop(){
    stop_service server-gateway-0.0.1-SNAPSHOT.jar;
    stop_service server-robot-0.0.1-SNAPSHOT.jar;
    stop_service server-user-0.0.1-SNAPSHOT.jar;
    stop_service server-game-0.0.1-SNAPSHOT.jar;
}

###################################
#读取脚本的第一个参数($1),进行判断
#参数取值范围:{start|stop|restart|status|info}
#如参数不在指定范围之内,则打印帮助信息
###################################
case "$1" in
   'start')
      start
      ;;
   'stop')
     stop
     ;;
  *)
echo "Usage: $0 {start|stop}"
exit 1
esac 
exit 0

 

你可能感兴趣的:(linux,shell,jar)