每次重启项目都需要先查看进程在杀死启动比较麻烦,所以写了一个shell脚本用来重启WEB服务

  • 重启WEB服务步骤
  • 假定环境
  • 查询进程PID
    • 根据端口号查询进程PID
      • 命令
      • 存在的问题
      • 根据端口号重启脚本(不推荐)
    • 根据关键字查询进程PID
      • 命令
      • 存在的问题及解决方案
      • 根据关键字重启脚本

重启WEB服务步骤

  1. 查询进程pid
  2. 停掉旧进程
  3. 启动新进程

假定环境

  • Tomcat名称:tomcat-test
  • Tomcat目录:/home/tomcat-test
  • Tomcat使用的端口:8080

查询进程PID

根据端口号查询进程PID

命令

# 模糊查询
netstat -nlp | grep :8080
# 精确查询
netstat -nlp | grep :'\<8080\>'

存在的问题

  • 因端口号只能被一个进程占用,所以不小心启动两次进程时候,另外一个进程通过端口查询的方式是查询不到的。

根据端口号重启脚本(不推荐)

  1. 创建脚本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

  1. 把脚本上传到/home/tomcat-test/bin目录下,和start.sh同目录,并授权
chmod a+x restart-web-port.sh
  1. 启动脚本
  • 使用默认PORT重启:
./restart-web-port.sh
  • 使用指定PORT:
./restart-web-port.sh 8080

根据关键字查询进程PID

命令

ps -ef|grep java

存在的问题及解决方案

  • 使用通用关键字时候,会查询到很多进程,比如java,会把java相关服务都查询到
  • 所以定义关键字时候一定要慎重,可以采用下面的一种方式来避免:
    • 给tomcat起一个唯一的名字(缺点:确保通过名称查询的pid唯一)
    • 带上全路径(推荐,缺点:确保路径固定不变)

根据关键字重启脚本

  1. 创建脚本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

  1. 把脚本上传到/home/tomcat-test/bin目录下,和start.sh同目录,并授权
chmod a+x restart-web-name.jar
  1. 启动脚本
  • 使用默认NAME重启:
./restart-web-name.sh
  • 使用唯一NAME重启:
./restart-web-name.sh tomcat-test
  • 使用全路径重启:
./restart-web-name.sh /home/tomcat-test/bin

Linux根据端口号或者关键字查询进程,重启Tomcat服务脚本优缺点说明相关推荐

  1. linux端口进程号pid,Linux根据端口号查看进程PID

    1.命令lsof,以查找占用端口80为例,用法如下: [root@localhost nginx]# lsof -i:80 以上为没有进程占用80端口, [root@localhost sbin]# ...

  2. liux常用命令(查看及其开放防火墙端口号+查看及其杀死进程)

    liux常用命令 一.Linux防火墙开启关闭.开放端口命令 注意:端口号开放后要记得重启防火墙 1.查看防火墙状态: systemctl status firewalld 2.开启防火墙: syst ...

  3. Linux 查看端口占用情况 并 结束进程

    lsof -i:端口号 kill -9 PID 原文:Linux 查看端口占用情况 并 结束进程 我的小站.Github.CSDN 有时候使用 ps 命令无法检查出特定的进程,可考虑通过观察端口占用情 ...

  4. 端口号属于协议还是进程

    端口号属于协议还是进程   我们知道,在操作系统中,端口号用于标记本机中的一个进程.而在计算机网络中,运输层使用一种叫做协议端口号(protocol port number)的东西.问题是,协议端口号 ...

  5. 服务器,linux系统配置端口号的坑!!!服务器防火墙配置!!!

    服务器,linux系统配置端口号的坑!!! 1.重要:首先服务器的安全组规则,开放端口 2 .坑:服务器上的防火墙限制端口,导致外电脑无法通过公网ip访问服务器上启动node服务 找了超多解决办法:都 ...

  6. 计算机 - 知名端口号和注册端口号 - 收集与查询

    1.应用场景 主要用于计算机 - 知名端口号和注册端口号 - 收集与查询. 2.学习/操作 1.文档阅读 Service Name and Transport Protocol Port Number ...

  7. linux定时重启tomcat的脚本,linux定时重启tomcat服务的脚本学习

    要求:在linux中定时重启一个tomcat服务 一:shell脚本即Shell Script [1],Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便 ...

  8. 如何在Linux操作系统定时重启Tomcat服务?

    如何在Linux操作系统定时重启Tomcat服务? 背景: 正常情况下启动和关闭tomcat程序命令如下: /application/tomcat/bin/startup.sh /applicatio ...

  9. Linux系统上实现定时重启Tomcat服务

    因为使用阿里云部署服务器应用时,Tomcat服务经常由于内存不足出现OutOfMemoryError异常的情况.经常过几天就需要重启一次服务器,更要命的是不知道什么时候会由于内存不足导致无法访问,如果 ...

  10. Linux通过端口号杀死指定进程

    前言: 我们在服务器上升级项目的时候,需要将原来的项目停止,然后启动新的项目. 这时候我们只知道应用所占的端口号,如何将进程杀死呢? linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 ...

最新文章

  1. phpexcel导出超过26列解决方案
  2. JAVA .xml 配置和 .properties 配置
  3. Mob统计分析数据模型理解
  4. 核心编程9 文件和文件的输入输出 (os模块)
  5. linux查看目录文件系统,ubuntu linux 文件系统目录结构-Windows下查看电脑信息的命令-linux菜鸟也必须知道的几个ubuntu最基础命令_169IT.COM...
  6. graphpad多条不同的曲线_Graphpad作图,这些技巧你知道吗?
  7. nginx 源码调试
  8. securecrt 乱码_SecureCRT远程连接Linux,配置端点和字节码
  9. 微软职位内部推荐-Senior Software Development Engineer
  10. matlab2c使用c++实现matlab函数系列教程-rank函数
  11. spring scheduled定时任务
  12. 员工考勤管理系统html,网页考勤系统人员排班操作说明
  13. android串口驱动服务怎么开启,Android usb转串口驱动开发
  14. Slicer学习笔记(六十一)slicer下segmentation segment合并
  15. 深度学习中滑动平均模型的作用、计算方法及tensorflow代码示例
  16. Azure text-to-speech 语音合成 中文晓晓情感API使用及教程
  17. 山东云则-您身边的物联网专家,助您快速接入物联网
  18. Python3断网离线安装依赖包
  19. Zabbix简单检查的使用
  20. 七夕情节人,适合给IT男朋友送什么专属礼物?

热门文章

  1. Hbase RegionServer 宕机
  2. 从zabbix的数据库获取数据
  3. 《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目
  4. Python 操作 mongodb 数据库
  5. Hibernate 映射文件基本概述
  6. Jsoup爬虫新手一
  7. VXLAN配置实例(二)——VXLAN跨子网互通
  8. Jupyter notebook内使用(添加)虚拟环境
  9. 某一天,忽然发现自己坚持不下去了。(无关计算机,只是一些自己的困惑和感想)
  10. 在 RHEL 和 CentOS 上检查或列出已安装的安全更新的两种方法