码迷,mamicode.com
首页 > 其他好文 > 详细

run_iep_pss_usc.sh脚本总结

时间:2020-07-08 15:22:45      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:描述   使用说明   shel   out   执行   span   success   提示   就是   

 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

 

run_iep_pss_usc.sh脚本总结

标签:描述   使用说明   shel   out   执行   span   success   提示   就是   

原文地址:https://www.cnblogs.com/curedfisher/p/13266660.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!