zoukankan      html  css  js  c++  java
  • run_iep_pss_usc.sh脚本总结

     APP_HOME=/home/sxylz/ggfw

    APP_NAME=$1
    # 使用说明,用来提示输入参数
    usage() {
      #Usage[可选内容]
      echo "Usage: sh boot [APP_NAME] [start|stop|restart|status]"
      exit 1
    }

    # 检查程序是否在运行
    #awk '{print $2}'提取第二列
    is_exist(){
      # 获取PID
      PID=$(ps -ef |grep ${APP_NAME} | grep -v $0 |grep -v grep |awk '{print $2}')
      # -z "${pid}"判断pid是否存在,如果不存在返回1,存在返回0
       # -z代表空串
      if [ -z "${PID}" ]; then
        # 如果进程不存在返回1
        return 1
      else
        # 进程存在返回0
        return 0
      fi
    }

    # 定义启动程序函数
    start(){
      is_exist
      #if [ $? -eq 0 ]该语句是什么含义? 解:代表上一个命令执行后的退出状态
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is already running, PID=${PID}"
      else
        #shell中“>/dev/null 2>&1”详解
        #shell中可能经常能看到:>/dev/null 2>&1
        #命令的结果可以通过 %> 的形式来定义输出,其中 %> 代表文件描述符
        #我们将这个命令组合:“>/dev/null 2>&1” 拆为四部分来分析下:
        #1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt
        #2:首先 0> 表示stdin标准输入; 1> 表示stdout标准输出; 2> 表示stderr错误输出;
        #3:/dev/null 代表空设备文件
        #4:& 可以理解为是"等同于"的意思,2>&1,即表示2的输出重定向等同于1
        #5:1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"
        #因此,>/dev/null 2>&1 也可以写成“1> /dev/null 2> &1”
        #那么本文标题的语句执行过程为:
        #1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
        #2>&1 :接着,将标准错误输出重定向 到 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
        nohup java -jar ${APP_HOME}/${APP_NAME} >/dev/null 2>&1 &
        PID=$(echo $!)
        #pid=$!就是这个目录名后面跟上这个脚本的pid号
        echo "${APP_NAME} start success, PID=$!"
      fi
    }

    # 停止进程函数
    stop(){
      is_exist
      if [ $? -eq "0" ]; then
        kill -9 ${PID}
        echo "${APP_NAME} process stop, PID=${PID}"
      else
        echo "There is not the process of ${APP_NAME}"
      fi
    }

    # 重启进程函数
    restart(){
        stop
        start
    }

    # 查看进程状态
    status(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is running, PID=${PID}"
      else
        echo "There is not the process of ${APP_NAME}"
      fi
    }

    case $2 in
    "start")
        start
        ;;
    "stop")
        stop
        ;;
    "restart")
        restart
        ;;
    "status")
        status
        ;;
      *)
      usage
      ;;

    #esac是和case配对的bai,是多路分支的语句,类似于C中的 switch/case 语句
    esac
    exit 0

  • 相关阅读:
    php备份数据库类分享
    nginx https配置后无法访问,可能防火墙在捣鬼
    linux服务器,svn认证失败,配置问题,防火墙等等
    为了解决linux配置Nginx 只能关闭防火墙才能访问的问题
    nginx 防火墙、权限问题
    思数云hadoop目录
    delete
    善用GIMP(Linux下的Photoshop),图像处理轻松又自由
    超赞干货!2016年新鲜出炉的20款网页开发工具推荐
    10款Web前端工具
  • 原文地址:https://www.cnblogs.com/curedfisher/p/13266660.html
Copyright © 2011-2022 走看看