gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:14 24 4
gpt4 key购买 nike

阅读 INPUT_STRING 案例 $INPUT_STRING 在

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 数组,并检查每个:

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 停止

关于linux - 在linux中如何找到tomcat服务器在不同系统的多个端口上运行而不提及端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41688034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com