Linux根据端口号或者关键字查询进程,重启Tomcat服务脚本优缺点说明
每次重启项目都需要先查看进程在杀死启动比较麻烦,所以写了一个shell脚本用来重启WEB服务
- 重启WEB服务步骤
- 假定环境
- 查询进程PID
- 根据端口号查询进程PID
- 命令
- 存在的问题
- 根据端口号重启脚本(不推荐)
- 根据关键字查询进程PID
- 命令
- 存在的问题及解决方案
- 根据关键字重启脚本
重启WEB服务步骤
- 查询进程pid
- 停掉旧进程
- 启动新进程
假定环境
- Tomcat名称:tomcat-test
- Tomcat目录:/home/tomcat-test
- Tomcat使用的端口:8080
查询进程PID
根据端口号查询进程PID
命令
# 模糊查询
netstat -nlp | grep :8080
# 精确查询
netstat -nlp | grep :'\<8080\>'
存在的问题
- 因端口号只能被一个进程占用,所以不小心启动两次进程时候,另外一个进程通过端口查询的方式是查询不到的。
根据端口号重启脚本(不推荐)
- 创建脚本restart-web-port.sh
#!/bin/bash
echo "restrat..."
PORT=$1
echo $PORT
if [ ! -n "$PORT" ]
thenPORT=8080echo "use default port" $PORT
fi
pid=$(netstat -nlp | grep :'\<'$PORT'\>' | awk '{print $7}' | awk -F"/" '{ print $1 }')
if [ -n "$pid" ]
thenkill -9 $pidecho "kill pid" $pid
elseecho "pid is null"
fi
rm -rf /home/tomcat-test/temp/*
rm -rf /home/tomcat-test/work/*
echo "remove tomcat cache finish..."
sleep 2s
sh /home/tomcat-test/bin/startup.sh
- 把脚本上传到/home/tomcat-test/bin目录下,和start.sh同目录,并授权
chmod a+x restart-web-port.sh
- 启动脚本
- 使用默认PORT重启:
./restart-web-port.sh
- 使用指定PORT:
./restart-web-port.sh 8080
根据关键字查询进程PID
命令
ps -ef|grep java
存在的问题及解决方案
- 使用通用关键字时候,会查询到很多进程,比如java,会把java相关服务都查询到
- 所以定义关键字时候一定要慎重,可以采用下面的一种方式来避免:
- 给tomcat起一个唯一的名字(缺点:确保通过名称查询的pid唯一)
- 带上全路径(推荐,缺点:确保路径固定不变)
根据关键字重启脚本
- 创建脚本restart-web-name.sh
#!/bin/bash
echo "restrat..."
NAME=$1
echo $NAME
if [ ! -n "$NAME" ]
thenNAME=tomcat-testecho "use default name" $NAME
fi
pid=`ps -ef | grep java | grep $NAME | awk '{print $2}'`
if [ -n "$pid" ]
thenkill -9 $pidecho "kill pid" $pid
elseecho "pid is null"
fi
rm -rf /home/tomcat-test/temp/*
rm -rf /home/tomcat-test/work/*
echo "remove tomcat cache finish..."
sleep 2s
sh /home/tomcat-test/bin/startup.sh
- 把脚本上传到/home/tomcat-test/bin目录下,和start.sh同目录,并授权
chmod a+x restart-web-name.jar
- 启动脚本
- 使用默认NAME重启:
./restart-web-name.sh
- 使用唯一NAME重启:
./restart-web-name.sh tomcat-test
- 使用全路径重启:
./restart-web-name.sh /home/tomcat-test/bin
Linux根据端口号或者关键字查询进程,重启Tomcat服务脚本优缺点说明相关推荐
- linux端口进程号pid,Linux根据端口号查看进程PID
1.命令lsof,以查找占用端口80为例,用法如下: [root@localhost nginx]# lsof -i:80 以上为没有进程占用80端口, [root@localhost sbin]# ...
- liux常用命令(查看及其开放防火墙端口号+查看及其杀死进程)
liux常用命令 一.Linux防火墙开启关闭.开放端口命令 注意:端口号开放后要记得重启防火墙 1.查看防火墙状态: systemctl status firewalld 2.开启防火墙: syst ...
- Linux 查看端口占用情况 并 结束进程
lsof -i:端口号 kill -9 PID 原文:Linux 查看端口占用情况 并 结束进程 我的小站.Github.CSDN 有时候使用 ps 命令无法检查出特定的进程,可考虑通过观察端口占用情 ...
- 端口号属于协议还是进程
端口号属于协议还是进程 我们知道,在操作系统中,端口号用于标记本机中的一个进程.而在计算机网络中,运输层使用一种叫做协议端口号(protocol port number)的东西.问题是,协议端口号 ...
- 服务器,linux系统配置端口号的坑!!!服务器防火墙配置!!!
服务器,linux系统配置端口号的坑!!! 1.重要:首先服务器的安全组规则,开放端口 2 .坑:服务器上的防火墙限制端口,导致外电脑无法通过公网ip访问服务器上启动node服务 找了超多解决办法:都 ...
- 计算机 - 知名端口号和注册端口号 - 收集与查询
1.应用场景 主要用于计算机 - 知名端口号和注册端口号 - 收集与查询. 2.学习/操作 1.文档阅读 Service Name and Transport Protocol Port Number ...
- linux定时重启tomcat的脚本,linux定时重启tomcat服务的脚本学习
要求:在linux中定时重启一个tomcat服务 一:shell脚本即Shell Script [1],Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便 ...
- 如何在Linux操作系统定时重启Tomcat服务?
如何在Linux操作系统定时重启Tomcat服务? 背景: 正常情况下启动和关闭tomcat程序命令如下: /application/tomcat/bin/startup.sh /applicatio ...
- Linux系统上实现定时重启Tomcat服务
因为使用阿里云部署服务器应用时,Tomcat服务经常由于内存不足出现OutOfMemoryError异常的情况.经常过几天就需要重启一次服务器,更要命的是不知道什么时候会由于内存不足导致无法访问,如果 ...
- Linux通过端口号杀死指定进程
前言: 我们在服务器上升级项目的时候,需要将原来的项目停止,然后启动新的项目. 这时候我们只知道应用所占的端口号,如何将进程杀死呢? linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 ...
最新文章
- phpexcel导出超过26列解决方案
- JAVA .xml 配置和 .properties 配置
- Mob统计分析数据模型理解
- 核心编程9 文件和文件的输入输出 (os模块)
- linux查看目录文件系统,ubuntu linux 文件系统目录结构-Windows下查看电脑信息的命令-linux菜鸟也必须知道的几个ubuntu最基础命令_169IT.COM...
- graphpad多条不同的曲线_Graphpad作图,这些技巧你知道吗?
- nginx 源码调试
- securecrt 乱码_SecureCRT远程连接Linux,配置端点和字节码
- 微软职位内部推荐-Senior Software Development Engineer
- matlab2c使用c++实现matlab函数系列教程-rank函数
- spring scheduled定时任务
- 员工考勤管理系统html,网页考勤系统人员排班操作说明
- android串口驱动服务怎么开启,Android usb转串口驱动开发
- Slicer学习笔记(六十一)slicer下segmentation segment合并
- 深度学习中滑动平均模型的作用、计算方法及tensorflow代码示例
- Azure text-to-speech 语音合成 中文晓晓情感API使用及教程
- 山东云则-您身边的物联网专家,助您快速接入物联网
- Python3断网离线安装依赖包
- Zabbix简单检查的使用
- 七夕情节人,适合给IT男朋友送什么专属礼物?