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

文章目录

  • 一、管道方式
    • 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 ~]$

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

  1. 各个系统下关闭占用端口号的进程

    各个系统下关闭占用端口号的进程 以8080端口为例 Windows win + R --> cmd netstat -ano | findstr 8080 查询到的最后一列即为对应进程的PID ...

  2. Windows10关闭指定端口号命令

    查看指定端口号是否被占用 win + R 输入 cmd 打开命令黑窗口 输入命令: netstat -ano | findstr 端口号 当参数为LISTENING 时.说明此端口号正在被占用.需要手 ...

  3. windows 脚本-关闭指定端口进程

    # 关闭执行脚本输出 @echo off # 延迟赋值 setlocal enabledelayedexpansion set port=9090 set pid=bug for /f "t ...

  4. linux shell脚本 删除指定目录下文件夹(可指定文件夹名、时间)

    情景:需要删除以201812开头的.6天前修改的文件夹(文件夹里包含文件).鼓捣了好一会,开始用find /home/users/niu/test/log/ -name '201812*' -type ...

  5. cmd结束指定端口号的进程

    1. netstat -nao | findstr "81" 2. taskkill /pid 7740 /F

  6. 通过端口号查找进程号

    netstat -tunlp|grep 端口号,用于查看指定端口号的进程情况,如查看22端口的情况,netstat -tunlp|grep 22,如下图

  7. Linux Shell脚本 Linux C程序 获取指定的范围内 or 系统可用端口

    Linux Shell脚本 && Linux C程序 获取指定的范围内 or 系统可用端口 一.源代码及其运行 1. Linux C程序getPort.c 源码 运行示例 2. 脚本文 ...

  8. Linux上怎样停止服务(jar包)、查看进程路径、关闭指定端口

    场景 在linux上部署的jar包服务需要停止该服务并关闭防火墙对应的端口. 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 ...

  9. linux脚本定时拷贝文件,使用Linux shell脚本实现FTP定时执行批量下载指定文件

    使用FTP定时批量下载指定文件的shell脚本,具体实例介绍如下所示: 1.目标FTP服务器地址 #FTP服务器地址 ip=10.19.15.23 2.FTP账号和密码 u=账号 p=密码 3.使用m ...

最新文章

  1. 波士顿动力机器狗再进化:已学会自主规划路线
  2. sql array 数组基本用法(二)
  3. find命令查找某些文件并将其拷贝到指定目录
  4. 64位处理器_电脑系统32位好还是64位好 哪个快?
  5. 16槽双电源机架式光纤收发器产品优势介绍
  6. ES6标准入门(第二版)pdf
  7. tdd测试驱动开发课程介绍_测试驱动开发的实用介绍
  8. 为CEDIT添加有颜色的边框
  9. BootStrap笔记-按钮相关
  10. html5_canvas初学
  11. python jsonpath set value_Python学习:json对象快速访问(续)
  12. Spring : ConfigurableListableBeanFactory
  13. spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入...
  14. Kinect+OpenNI学习笔记之2(获取kinect的颜色图像和深度图像)
  15. 科技论文写作经验之谈
  16. 64位处理器_计算机微处理器介绍
  17. 【情感分析:挖掘观点、情感和情绪】读书笔记-02
  18. 一款消消乐游戏的自动解法
  19. revit二次开发--异形柱翻模
  20. 计算机激光鼠标,差评终结者:激光鼠标就是比光电的好?

热门文章

  1. 推荐算法是今日头条的核心竞争力吗?
  2. linux网络编程 华清,Linux网络编程之套接字
  3. wxpython有哪些基本功能_用Python中的wxPython实现最基本的浏览器功能
  4. flink常见算子的一些操作
  5. 窗口函数和hive优化简记
  6. 1224 哥德巴赫猜想(2)
  7. VS调试启动编辑并继续功能
  8. F5 BIGip 负载均衡 IP算法解密工具
  9. 从阿里核心场景看实时数仓的发展趋势
  10. 移动端 IP 优选方案