linux shell脚本关闭指定端口号的进程

关闭指定进程中关键词的进程,最好找一个唯一标识 例如:项目名称 等等

文章目录

          • 一、管道方式
            • 1. 关闭指定程序进程号
            • 2. 关闭指定端口号的进程(推荐使用)
            • 3. 关闭指定进程关键词的进程(推荐使用)
            • 4. 操作记录
            • 5. 知识补充
          • 二、jps方式
            • 2.1. 使用场景说明
            • 2.2. 不同程序不同进程
          • 三、管道另一种方式
            • 3.1. 脚本编写思路
            • 3.2. 查看占用端口号的服务
            • 3.3. 筛选看规律
            • 3.4. 读取出端口号
            • 3.5. 分割处理
            • 3.6. 然后把这个数字传给kill就可以

一、管道方式
1. 关闭指定程序进程号
#1.关闭指定程序的进程
ps -ef | grep java | grep -v grep | cut -c 9-15 | xargs kill -9注:如果是以程序来关闭的场景,这一种仅限于该java程序只启动了一个#2.关闭指定端口号的进程(推荐使用)
ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs kill -9#3.关闭指定进程中关键词的进程
ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:采用进程中唯一标识关闭的进程即可
2. 关闭指定端口号的进程(推荐使用)
#2.关闭指定端口号的进程(推荐使用)
ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs kill -9#3.关闭指定进程中关键词的进程
ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:采用进程中唯一标识关闭的进程即可
3. 关闭指定进程关键词的进程(推荐使用)
#3.关闭指定进程中关键词的进程
ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:其实1/2/3都属于一种,采用进程中唯一标识关闭的进程即可

在这里插入图片描述

4. 操作记录
[cmiip@localhost ~]$ ps -ef |grep java
cmiip     12293      1  7 20:54 pts/2    00:00:29 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8080
cmiip     12404  12096  8 20:55 pts/2    00:00:25 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8082
cmiip     12440  12096 12 20:55 pts/2    00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8083
cmiip     12456  12096 12 20:55 pts/2    00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8084
cmiip     12472  12096 12 20:56 pts/2    00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8085
cmiip     12581  12096  0 21:00 pts/2    00:00:00 grep --color=auto java
[cmiip@localhost ~]$ ps -ef |grep 8080
cmiip     12293      1  7 20:54 pts/2    00:00:29 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8080
cmiip     12596  12096  0 21:01 pts/2    00:00:00 grep --color=auto 8080
[cmiip@localhost ~]$ ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs
12293
[cmiip@localhost ~]$ ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs kill -9 
[cmiip@localhost ~]$ ps -ef |grep java
cmiip     12404  12096  7 20:55 pts/2    00:00:25 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8082
cmiip     12440  12096 10 20:55 pts/2    00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8083
cmiip     12456  12096 11 20:55 pts/2    00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8084
cmiip     12472  12096 11 20:56 pts/2    00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8085
cmiip     12610  12096  0 21:01 pts/2    00:00:00 grep --color=auto java
[cmiip@localhost ~]$
5. 知识补充
说明:管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。 “ps -ef” 查看所有进程“grep -v grep” 是在列出的进程中去除含有关键字“grep”的进程。“cut -c 9-15” 是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。“xargs kill -9” 中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该命令。“kill -9”会强行杀掉指定进程,这样就成功清除了同名进程。
二、jps方式
2.1. 使用场景说明

如果服务器上启动着不同的应用或者软件或者中间件可以使用此种方式;如果一种程序启动多个推荐使用第一种方案。

2.2. 不同程序不同进程
jps | grep 'Elasticsearch' | awk -F ' ' '{print $1}' | xargs kill -9

因为jps输出结果的形式是’进程号 进程名称’,所以这里awk命令以空格切分,取第一个元素(即进程号),然后输入到xargs即可.

三、管道另一种方式
3.1. 脚本编写思路
1 netstat -nlp 查看占用端口号的服务
2 找到该端口号的进程
3 找到该进程id
4 kill它
3.2. 查看占用端口号的服务
[cmiip@localhost ~]$ netstat -nlptcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::8082                 :::*                    LISTEN      12404/java          
tcp6       0      0 :::8083                 :::*                    LISTEN      12440/java          
tcp6       0      0 :::8084                 :::*                    LISTEN      12456/java          
tcp6       0      0 :::8085                 :::*                    LISTEN      12472/java          
tcp6       0      0 :::21                   :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -                   
tcp6       0      0 ::1:25                  :::*                    LISTEN      -                   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -                   
raw6       0      0 :::58                   :::*                    7           -
3.3. 筛选看规律

可以用grep筛选一下,看看规律,找到有 :3306 的一行就好
用管道符给grep处理:

[cmiip@localhost ~]$ netstat -nlp | grep :8082
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
tcp6       0      0 :::8082                 :::*                    LISTEN      12404/java  既然取出一行了,那就容易了,再筛选一下,用awk分割取出其中一个
3.4. 读取出端口号
[cmiip@localhost ~]$ netstat -nlp | grep :8082 | awk '{print $7}'
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
12404/java
[cmiip@localhost ~]$
意思是取第七个字段,这里默认应该是用tab字符分割的,已经读取出来了,但是还得拿到/前面的数字
3.5. 分割处理

取/前面的数字就可以了,这里还是可以用awk处理

[cmiip@localhost ~]$ netstat -nlp | grep :8082 | awk '{print $7}' | awk -F"/" '{ print $1 }'
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
12404
[cmiip@localhost ~]$意思是用/符号分割,取第一部分
3.6. 然后把这个数字传给kill就可以

需要用到"`"操作符,它可以执行一个语句,这个可以如此执行:

 kill -9 `netstat -nlp | grep :8082 | awk '{print $7}' | awk -F"/" '{ print $1 }'`
操作记录:
[cmiip@localhost ~]$ kill -9 `netstat -nlp | grep :8082 | awk '{print $7}' | awk -F"/" '{ print $1 }'`
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
[cmiip@localhost ~]$ netstat -nlp | grep :8082 | awk '{print $7}'
[cmiip@localhost ~]$

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6 个步骤,教你在Ubuntu虚拟机环境下,用Docker自带的DNS配置Hadoop | 附代码

作者 | tianyouououou责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于视觉中国最近,作者整理了一套Hadoop搭建方案。最后的镜像大小1.4G多,使用docker子网,容器重新启动不需要重新配置/etc/hosts文件。配置过程中参考了如下博客&#xff…

开发函数计算的正确姿势——支持 ES6 语法和 webpack 压缩

首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源&#xff…

邮件格式转换html,HTML邮件模板 - lenglingx的个人页面 - OSCHINA - 中文开源技术交流社区...

邮件要求兼容 outlook 等邮箱软件,发现很多样式都不生效。找到的模板如下:尊敬的开发者:                         “xxx”在此次的‘网络友好度测试’评级:4颗星(最高5颗星)。注意点不支持头部style、外…

Apache Cassandra 数据存储模型

我们在《Apache Cassandra 简介》文章中介绍了 Cassandra 的数据模型类似于 Google 的 Bigtable,对应的开源实现为 Apache HBase,而且我们在 《HBase基本知识介绍及典型案例分析》 文章中简单介绍了 Apache HBase 的数据模型。按照这个思路,A…

解决Navicat 出错:1130-host . is not allowed to connect to this MySql server,MySQL

use mysql; select host,user from user; update user set host% where userroot; flush privileges;

Knative Eventing 中 Channel 如何注入默认 Provisioner

场景 通常的在创建Broker时,我们需要通过 spec.ChannelTemplate 指定使用某个具体的 Channel Provisioner。例如这样的Broker: apiVersion: eventing.knative.dev/v1alpha1 kind: Broker metadata:name: pubsub-channel spec:channelTemplate:provisioner:apiVers…

删库跑路事件发生,SaaS云服务如何守护数据安全

作者 | 蒋敏峰责编 | Carol封图 | CSDN付费下载于视觉中国近日,某SaaS服务商/微盟遭遇员工删库跑路,服务器出现大面积故障,一时间让平台上的几百万家商户生意基本停摆。这一事件发生后,不管是厂商还是平台上的用户,都在…

express模板引擎 html,Express使用html模板的代码分析

express默认使用jade模板,可以配置让其支持使用ejs或html模板。1.安装ejs在项目根目录安装ejs.npminstallejs2、引入ejsvarejsrequire(ejs);//我是新引入的ejs插件3、设置html引擎app.engine(html,ejs.__express);设置视图引擎app.set(viewengine,html)…

记一次吐血的ping: unknown host

背景: 某客户的ECS,ping域名提示unknown host,ping ip则可以通,ping的时候抓包没有解析的包出去,是解析的问题吗?1,测试ping域名以及抓包发现没有dns的解析包出去 # ping www.baidu.com -c 1 p…

Nacos Committer 张龙:Nacos Sync 的设计原理和规划

与你同行,抬头便是星空。 本文整理自Nacos Committer 张龙的现场分享,阿里巴巴中间件受权发布。 随着 Nacos 1.0.0 稳定版的发布,越来越多的企业开始在测试/预演/生产环境中逐步部署 Nacos。目前,除了部分企业已处于转型分布式架…

Linux 会成为主流桌面操作系统吗?

整理 | 屠敏出品 | CSDN(ID:CSDNnews)2020 年 1 月 14 日,微软正式停止了 Windows 7 系统的扩展支持,这意味着服役十年的 Windows 7,属于它的时代真的终结了,说不出的再见,只能怀恋。…

阿里搜索推荐系统又双叒叕升级了?!

搜索导购产品作为搜索的流量入口,承载了为用户导购推荐、搜索流量分流的重要功能。主要产品包括:首页底纹、下拉推荐、搜索发现、导航、历史搜索等。经过几年的探索和积累,各个产品越发地成熟,机器学习算法广泛地应用于导购产品中…

处理网络超时问题的最佳实践

对于云上的用户来说,业务日志里面报超时问题处理起来往往比价棘手,因为1) 问题点可能在云基础设施层,也有可能在业务软件层,需要排查的范围非常广;2) 这类问题往往是不可复现问题,抓到现场比较难。在本文里…

BZip2Codec压缩、Map端压缩控制、Reduce端压缩控制……都在这份Hadoop整合压缩知识点里了!...

作者 | Tai_Park责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于东方 IC今天来聊聊 Hadoop 的压缩。压缩:原始数据通过压缩手段产生目标数据,要求输入和输出的内容是一样的(大部分),但体积是不一样的。对于单机用户…

WAF+SLB负载不均衡案例分享

问题演变过程 时间点1:高防WAFSLB2台ECS 时间点2:高防WAFSLB4台ECS 问题描述 在时间点1时,没有发现明显的负载不均衡的情况。在时间点2时,出现大部分请求都打到了其中一台ECS上。需要定位问题原因 问题梳理 问题链路 是SLB后…

架构整洁之道, 看这一篇就够了!

程序的世界飞速发展,今天所掌握的技能可能明年就过时了,但有些知识历久弥新,掌握了它们,你在程序的海洋中就不会迷路,架构思想就是这样的知识。 本文是《架构整洁之道》的读书心得,作者将书中内容拆解后再组…

2019年度CSDN博客之星TOP10榜单揭晓,你上榜了吗?

培根说,『读书造成充实的人,会议造成未能觉悟的人,写作造成正确的人』。在短信短视频快速迭代的快时代,更深度的思考、更正确的实践,更成体系的写作与分享,尤显可贵。这里,每一篇博文都是开发者…

(进阶篇_01)Oracle数据同步3种场景

文章目录一、场景分析二、实战2.1. 创建原表表结构初始化数据2.2. 创建目标表表结构2.3. 同步前效果图2.4. 连接串2.5. 执行同步2.6.执行后效果图2.7.操作记录三、实战场景2(第1种)3.1. 原表表结构初始化数据3.2. 目标表表结构3.3. 连接字符串3.4. 数据同…

html背景图片横屏,CSS背景颜色 背景图片 居中 重复 固定样式background经验篇

我们使用CSS Background样式属性,可以设置网页背景单一颜色、网页背景为图片、网页背景图片居中于网页、网页背景图片网页固定位置、网页背景图片中网页中重复平铺等css背景样式介绍与案例讲解。扩展阅读:CSS背景Background基础:http://www.d…

借助混沌工程工具 ChaosBlade 构建高可用的分布式系统

在分布式架构环境下,服务间的依赖日益复杂,可能没有人能说清单个故障对整个系统的影响,构建一个高可用的分布式系统面临着很大挑战。在可控范围或环境下,使用 ChaosBlade 工具,对系统注入各种故障,持续提升…