【问题标题】:How to check if JBoss is running on Unix server?如何检查 JBoss 是否在 Unix 服务器上运行?
【发布时间】:2012-02-04 09:23:35
【问题描述】:

我在下面有一个脚本,我想根据它是否可以在进程列表中找到 jboss 进程来回显“jboss 未运行”或“jboss 正在运行”。但是,当我关闭 Jboss 时,它仍然执行 Else 条件并显示“jboss 正在运行”。如果我手动执行“pgrep -f jboss”它不会返回任何内容,那么为什么它仍然会进入 Else 状态? 困惑

#!/bin/bash
if [ -z "$(pgrep -f jboss)" ]
  then
  echo "jboss is not running"
else
  echo "jboss is running"
fi 

感谢您的帮助!

【问题讨论】:

    标签: linux unix service process jboss


    【解决方案1】:

    不用检查输出,只需使用命令:

    if pgrep -f jboss >/dev/null
      then
      echo "jboss is running"
    else
      echo "jboss is not running"
    fi 
    

    【讨论】:

      【解决方案2】:

      获取进程 ID JBoss 7 / EAP 6:

      pgrep -f org.jboss.as
      

      所以如果你想用这个来增强以前的示例脚本:

      if [ -z "$(pgrep -f org.jboss.as)" ]
      then 
       echo "JBoss is NOT running"
      else
        echo "JBoss is running"
      fi 
      

      【讨论】:

        【解决方案3】:

        尝试使用命令的exit status -

        #!/bin/bash
        
        pgrep -f jboss &> /dev/null
        if [ $? -eq 0 ]
          then
          echo "jboss is running"
        else
          echo "jboss is not running"
        fi
        

        【讨论】:

          【解决方案4】:

          这是最好的方法:

          if [ -z "$(ps -ef | grep java | grep jboss)" ]
          then 
           echo "JBoss is NOT running"
          else
            echo "JBoss is running"
          fi
          

          【讨论】:

            【解决方案5】:
            #! /bin/bash
             if [ -z "$(ps -ef | grep org.jboss.Main)" ]
            then 
             echo "jboss is not running"
            else
              echo "jboss is running"
            fi
            

            【讨论】:

              【解决方案6】:

              最好的办法就是用这个

              result=`$jboss/bin/jboss-cli.sh --connect controller=localhost:$controller_port --commands=\"read-attribute server-state\" > out 2&1`
              echo "$result" | grep -q "running"
              if [ $? -eq 0 ];then 
                 echo "Jboss running"
              fi
              

              如果要检查是否部署了ear或war文件,则可以使用以下命令

              $JBOSS_HOME/bin/jboss\-cli.sh --connect controller=localhost:$PORT  --command="deployment-info --name=$YOUR_WAR_OR_EAR_FILE" 
              

              【讨论】:

                【解决方案7】:

                运行 jpsgrep 将它用于 jboss 的行,剪切从行中的 PID 并检查PID。

                【讨论】:

                  【解决方案8】:

                  您可以在 bash 脚本中使用以下函数;如果 Jboss 已经启动,下面的函数返回 Jboss 的 PID。注意 $1 是你的 jboss 的基本目录。例如: $1=/root/app/wildfly-X.Final

                  function getJbossPID() {
                  local pid;
                  local DIR=$1;
                  if [[ ! -z $DIR ]]; then
                      local result=();
                      jps=`jps -m`
                      if [[ ! -z $jps ]]; then
                          IFS='
                          '
                          jps_result=`jps -m`
                          for jps_line_result in $jps_result; do
                              result_jps=$jps_line_result;
                              if [[ $result_jps == *$DIR* ]]; then
                                  unset IFS
                                  array=( $result_jps );
                                  pid=${array[0]};
                              fi
                          IFS='
                          '
                          done;
                          unset IFS;
                      fi
                  fi
                  echo $pid;
                  }
                  

                  您可以使用上述功能,如下所示:

                  PID=$(getJbossPID $YOUR_JBOSS)

                  【讨论】:

                    【解决方案9】:

                    你不能用那种方式检查 jboss。 因为 Jboss 启动有时会记录 1-2 分钟的时间。 所以你的脚本只显示进程 Jboss,而不是“Jboss 真的 UP”(我的意思是 JBoss 上的应用程序)。

                    【讨论】:

                    • 你还没有回答他的问题;你刚刚解释了为什么他的支票不足以监控 jboss。
                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2023-03-13
                    • 2021-08-14
                    • 2012-04-09
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-07-09
                    • 1970-01-01
                    相关资源
                    最近更新 更多