Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux中,如何找到tomcat服务器在不同系统的多端口中运行,而不提及端口号_Linux_Apache_Unix_Tomcat - Fatal编程技术网

在linux中,如何找到tomcat服务器在不同系统的多端口中运行,而不提及端口号

在linux中,如何找到tomcat服务器在不同系统的多端口中运行,而不提及端口号,linux,apache,unix,tomcat,Linux,Apache,Unix,Tomcat,读取输入字符串 案例$INPUT_字符串输入 stop) check=`netstat -na | grep 8080 | awk '{print $6}'|head -1` if [ "$check" = "TIME_WAIT" ]; then echo "DEFAULT TOMCAT PORT IS LISTENING, SO ITS stopped already..." else sh /opt/apache-tomcat-8.

读取输入字符串 案例$INPUT_字符串输入

stop)

    check=`netstat -na | grep 8080 | awk '{print $6}'|head -1`
    if [ "$check" = "TIME_WAIT" ]; then
        echo "DEFAULT TOMCAT PORT IS LISTENING, SO ITS stopped already..."
    else 
        sh /opt/apache-tomcat-8.0.39/bin/shutdown.sh > /dev/null 2>&1
    echo "Tomcat server is stopped....."

    fi

这里,我的代码只查找在8080端口上运行的tomcat服务器,以便轻松查找tomcat是否正在运行。但实际上我需要的是,如果tomcat服务器正在运行或在某些其他端口处于停止状态,则停止/启动它。…

创建一个运行tomcat的PID数组,并检查每个PID:

declare -a list
list=( `ps -AChS | grep '[t]omcat' | awk '{ print $1 }'`)  
for i in ${list[*]} ; 
    do netstat -vlp tcp | awk '{ print $6, $9 }' | grep "$i" ; 
done
unset "$list" 
我在这里创建一个tomcat pid数组,然后使用grep查找每个pid的网络状态。完成循环后,我将清除数组。注意:netstat在不同的操作系统上有不同的实现,在我的例子中,我使用的是verbose,它显示了进程的pid和tcp过滤


使用catalina.sh启动或停止服务,例如,
catalina.sh stop

我已经知道这个命令,如果tomcat服务器的端口发生变化,如何识别它……当您只想停止服务时,为什么您关心端口是否发生变化?请解释一下。在我的代码中,我通过传递netstat-na | grep8080 | awk{print$6}head-1这个命令来获取tomcat服务器的状态。如果tomcat服务器正在运行,该命令将给出Listen的状态,否则它将返回TIME\u WAIT,从我确定服务器处于启动/停止状态开始。。根据我需要重新启动服务器或停止服务器的状态..这个脚本获取服务器中tomcat服务器安装路径的位置,在该路径中,它通过输入start/stop来启动..具体地说,我实际做的是ps-aef | grep java | grep tomcat | awk'{print$2}'此命令给出tomcat是否正在运行的状态。如果tomcat正在运行,我们将获得一些pid值,根据该值,我们可以检查启动tomcat服务器的条件是否。。。
# This script is works based on tomcat server is running or stopped status. if it is stopped I need to restart it by giving option as start otherwise stop based on the requirement....

#!/bin/sh
echo "Choose Your Option---- status or stop.."
echo 
echo "Enter Your Option ..."
path=`whereis -l tomcat | grep tomcat | sed 's/bin: //' |head -1`
echo $path
echo "Enter Your Option ..."
while :
do
  read INPUT_STRING
  case $INPUT_STRING in

    stop)

        check=` ps -aef |grep java| grep tomcat |awk '{print $2}'`
        if [ -z "$check" ]; then
            echo "Tomcat server is stopped already..."
        else 
            sh $path/shutdown.sh > /dev/null 2>&1
        echo "The Tomcat server is stopped successfully..."
        fi
        exit;
        ;;

    start)
        check=`ps -aef |grep java| grep tomcat |awk '{print $2}'`
        if [ ! -z ${check} ]; then
            echo "Tomcat server is already running successfully..."
        else 
            sh $path/startup.sh > /dev/null 2>&1
        echo "Tomcat server is started....."
            fi
         exit;
        ;;
    status)
        check=`ps -aef |grep java| grep tomcat |awk '{print $2}'`
        if [ ! -z ${check} ]; then
            echo "Tomcat server is already running..."
        else 
            echo "Tomcat server is stopped...."
            fi
         exit;
        ;;
  esac
done