shell脚本摘要

  1. 开启监听端口的程序时,查看是否开启成功(该例子监听8983端口)

    #动态显示[|][/][-][\]
    function spinner() {
      local pid=$1
      local delay=0.5
      local spinstr='|/-\'
      while [ "$(ps aux | awk '{print $2}' | grep -w $pid)" ]; do
          local temp=${spinstr#?}      #'\#'从字符串开头删除匹配subString,#?删除第一个字符
          printf " [%c]  " "$spinstr"
          local spinstr=$temp${spinstr%"$temp"}  #拼出一个新的字符串:删除第一个字符,把该字符加到被删字符串的后面。%:从结尾删除匹配到的字符串
          sleep $delay
          printf "\b\b\b\b\b\b"         # \b退格键,删除显示的字符
      done
      printf "    \b\b\b\b"
    }
    
    if hash lsof 2>/dev/null ; then  # hash 查看系统中是否有该命令
      echo -n "Waiting up to 30 seconds to see Solr running on port $SOLR_PORT"
      # Launch in a subshell to show the spinner
      (loops=0
      while true
      do
        running=`lsof -PniTCP:8983 -sTCP:LISTEN`
        # 循环6次,每次sleep5秒,执行6次lsof
        if [ -z "$running" ]; then
          if [ $loops -lt 6 ]; then
        sleep 5
        loops=$[$loops+1]
          else
        echo -e "Still not seeing Solr listening on $SOLR_PORT after 30 seconds!"
        tail -30 "$SOLR_LOGS_DIR/solr.log"
        exit # subshell!
          fi
        else
          SOLR_PID=`ps auxww | grep start\.jar | grep -w 8983 | grep -v grep | awk '{print $2}' | sort -r`
          echo -e "\nStarted Solr server on port $8983 (pid=$SOLR_PID). Happy searching!\n"
          exit # subshell!
        fi
      done) &
      spinner $!       # $!可以返回岛控制台
    else
      echo -e "NOTE: Please install lsof as this script needs it to determine if Solr is listening on port $SOLR_PORT."
      sleep 10
      SOLR_PID=`ps auxww | grep start\.jar | grep -w 8983 | grep -v grep | awk '{print $2}' | sort -r`
      echo -e "\nStarted Solr server on port $SOLR_PORT (pid=$SOLR_PID). Happy searching!\n"
      return;
    fi

转载于:https://www.cnblogs.com/72808ljup/p/5577921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值