欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux 启动java进程 sh文件

程序员文章站 2024-01-30 18:34:34
...
#!/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

上一篇: MySQL远程连接的设置问题

下一篇: