文章目录

  • Kill Killall pkill
    • 1 kill
      • 1.1 常用功能
      • 1.2 命令格式
      • 1.3 使用实例
        • 1.3.1 列出所有信号名称
        • 1.3.2 得到指定信号的数值
        • 1.3.3 杀死进程
        • 1.3.4 重新加载配置文件
        • 1.3.5 日志分割,重新打开日志文件
        • 1.3.6 平滑升级,在不关闭的情况下升级
        • 1.3.7 彻底杀死进程
    • 2 killall
      • 2.1 命令格式
      • 2.2 killall命令参数
      • 2.3 使用实例
        • 2.3.1 杀死名为mysqld的所有进程
        • 2.3.2 杀死名为mysqld的所有进程,并发送SIGTERM信号
        • 2.3.3 杀死名为myprogram的所有进程,并发送SIGKILL信号
        • 2.3.4 杀死名为mysqld的所有进程,但不杀死名为mysqld2的进程
        • 2.3.5 杀死指定用户所有进程
        • 2.3.6 定时杀死进程
        • 2.3.7 测试进程是否关闭
        • 2.3.8 重新加载进程
        • 2.3.9 关闭一组相关进程
    • 3 pkill命令
      • 3.1 pkill命令格式
      • 3.2 命令参数
      • 3.3 pkill使用场景及实例
        • 3.3.1 杀死所有名为nginx的进程
        • 3.3.2 杀死所有以my开头的进程
        • 3.3.3 杀死用户moonrong的所有进程
        • 3.3.4 杀死所有命令行参数中包含pattern的进程
        • 3.3.5 杀死进程组中的所有进程
        • 3.3.6 杀死最新的5个匹配进程
        • 3.3.7 杀死与指定终端相关的所有进程
    • 4 对比

Kill Killall pkill

1 kill

向指定的进程发送信号,用于终止进程或者修改进程的行为

1.1 常用功能

  • 终止进程

    • 默认发送TERM信号,让进程执行清理操作然后退出
  • 修改进程的行为
    • 使用HUP信号可以重新加载进程的配置文件
    • 使用USR1信号可以让进程执行自定义的操作
  • 查看可用信号
    • kill命令-l选项列出可用的信号

1.2 命令格式

kill [options] <PID>
选项 描述
-s 指定要发送的信号,默认为TERM信号
-l 列出可用的信号
-[signal] 发送指定的信号
-p 打印进程ID号,不发送信号
-a 向所有进程发送信号
-u 向指定用户的所有进程发送信号
-t 向指定终端上的所有进程发送信号
–help 显示帮助信息
–version 显示版本信息
  • kill -9 -u username:向用户名为username的所有进程发送KILL信号。
  • kill -l:列出所有可用的信号。
  • kill -15 1234:向进程ID为1234的进程发送TERM信号。
  • kill -a -s HUP:向所有进程发送HUP信号。

1.3 使用实例

1.3.1 列出所有信号名称

kill -l0:检查进程是否在运行15 SIGTERM:表示终止进程的请求信号,通常用于优雅地停止进程
进程可以忽略该信号,但是可以保存进程踪迹和日志信息9 SIGKILL:表示强制终止进程的信号,不能被阻塞、处理或忽略3 SIGQUIT:表示终止进程的信号,并且保存相关的日志信息2 SIGINT:表示中断进程的信号,通常由CTRL+C键生成,用于终止正在运行的进程1 SIGHUP:表示挂起进程的信号,通常用于重新读取配置文件或重新启动服务10 SIGUSR1和12 SIGUSR2:表示用户自定义的信号,可以用于进程之间的通信或者进行自定义操作

1.3.2 得到指定信号的数值

kill -l [信号名称]e.g
kill -l kill --> 9
kill -l SIGKILL --> 9
Kill -l TERM --> 15
kill -l SIGTERM --> 15

1.3.3 杀死进程

kill -3 PID
kill -s QUIT $(cat /usr/local/nginx/logs/nginx.pid)

1.3.4 重新加载配置文件

kill -1 PID
kill -s HUP PID

1.3.5 日志分割,重新打开日志文件

kill -USR1 nginx

1.3.6 平滑升级,在不关闭的情况下升级

kill -USR2 PID

1.3.7 彻底杀死进程

先查找到进程pid,然后杀死该进程

ps -ef | grep 进程名
kill -9 进程pid

2 killall

用于杀死指定进程名的所有进程

类似kill命令,但可以一次性杀死所有同名进程

2.1 命令格式

killall [选项] 进程名

2.2 killall命令参数

选项 描述
-e 精确匹配进程名,避免误杀,如果进程名是另一个进程名的子串,那么使用该选项可以确保只杀死该进程名的进程
-g 指定进程组ID,将杀死该进程组中的所有进程
-i 交互式模式,杀死进程前要求用户确认
-q 安静模式,不输出任何信息,只会杀死特定进程
-s 指定信号类型,可以是数字或信号名称,默认情况下,killall命令会向进程发送SIGTERM信号
-u 指定用户名,将杀死该用户所有进程

2.3 使用实例

2.3.1 杀死名为mysqld的所有进程

killall mysqld
killall -3 nginx
killall -s QUIT nginx
##可能会误删

2.3.2 杀死名为mysqld的所有进程,并发送SIGTERM信号

killall -s SIGTERM mysqld

2.3.3 杀死名为myprogram的所有进程,并发送SIGKILL信号

killall -s SIGKILL myprogram

2.3.4 杀死名为mysqld的所有进程,但不杀死名为mysqld2的进程

killall -e mysqld

2.3.5 杀死指定用户所有进程

killall -u 用户名

2.3.6 定时杀死进程

例如定时清理系统缓存或定时重启某个服务
可以使用定时任务结合killall实现每天凌晨3点定时重启名为mysqld的服务
crontab -e
0 3 * * * killall -9 mysqld

2.3.7 测试进程是否关闭

killall -0 nginx
echo $?

2.3.8 重新加载进程

killall -1 nginx
killall -s HUP nginx

2.3.9 关闭一组相关进程

例如要关闭所有名为mysql和apache的进程
killall mysql apache
  1. 有时候某个应用程序可能会启动多个进程,如果想要关闭所有这些进程,可以使用killall命令
  2. 如果某个进程崩溃了并且无法正常关闭,可以使用killall命令来杀死该进程
  3. 如果想要关闭某个用户的所有进程,可以使用killall命令
  4. 有时候多个进程可能是相互关联的,例如数据库服务和Web服务器,如果想要同时关闭它们,可以使用killall命令
  5. 有时候需要定时杀死某个进程,例如定时清理系统缓存或定时重启某个服务,可以使用定时任务结合killall命令来实现

3 pkill命令

通过进程名或其他属性来查找并杀死进程

3.1 pkill命令格式

pkill [选项] 模式

3.2 命令参数

参数 描述
-f 匹配进程的整个命令行参数
-u 根据指定的用户ID或用户名查找进程
-t 根据指定的终端号查找进程
-x 仅匹配与指定名称完全相同的进程
-n 仅杀死最新的n个匹配的进程
-e 仅杀死和当前用户相关的进程
-p 杀死指定进程的父进程
-g 杀死指定进程组中的所有进程

3.3 pkill使用场景及实例

3.3.1 杀死所有名为nginx的进程

pkill nginx

3.3.2 杀死所有以my开头的进程

pkill '^my'

3.3.3 杀死用户moonrong的所有进程

pkill -u moonrong

3.3.4 杀死所有命令行参数中包含pattern的进程

pkill -f pattern

3.3.5 杀死进程组中的所有进程

pkill -g pgid

3.3.6 杀死最新的5个匹配进程

pkill -n 5 pattern

3.3.7 杀死与指定终端相关的所有进程

pkill -t pts/0

4 对比

命令 描述 优点 缺点
kill 根据PID杀死 简单 手动查找进程PID
killall 根据进程名杀死所有进程 可以杀死多个进程 会误杀
pkill 根据进程名或其他属性杀死进程 根据多种属性杀死进程 需要root权限

kill命令适用于知道要杀死的进程 PID

killall命令适用于需要杀死多个同名进程时

pkill命令适用于根据不同属性杀死

Kill Killall pkill相关推荐

  1. kill killall pkill 的区别

    kill.pkill.killall 的作用都是终止一个进程或者正在运行的程序. kill.pkill.killall 的用法 kill 通常和grep 一起使用 常用使用方法 kill -9 + 进 ...

  2. 9.4-6 kill killall pkill

    kill:终止进程 能够终止你希望停止的进程. kill 命令的参数选项及说明 -l    列出全部的信号名称 -p    指定kill命令只打印相关进程的进程号,而不发送任何信号 -s    指定要 ...

  3. Linux进程管理(ps,pgrep,kill,killall,pkill,nohup,bg,fg)

    文章目录 Linux进程管理 什么是进程?什么是线程?二者的区别? Linux进程管理命令 ps命令 使用方法案例 ps带减号和不带减号的区别 查看进程树的命令pstree pgrep命令 kill命 ...

  4. Ubuntu终止进程的方法(kill、pkill、killall)

    Ubuntu终止进程的方法(kill.pkill.killall) 博客分类:Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux 用户退出: ...

  5. 详解linux杀死进程方法:kill、pkill、killall之间的区别及用法!

    详解linux杀死进程方法:kill.pkill.killall之间的区别及用法! kill 命令 killall 命令 pkill 命令 kill.pkill.killall之间的区别 kill 命 ...

  6. linux 命令:grep、egrep、ngrep、kill、pkill、killall

    1.grep 帮助:grep --help 用法:grep [OPTION]...patterns[FILE]... 示例:grep -i 'hello world' menu.h main.c    ...

  7. killall 后面信号_killall 、kill 、pkill 命令区别

    killall 命令Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name).我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死 ...

  8. pkill mysql_Linux学习28-linux一行命令杀掉指定名称进程(killall 、kill 、pkill)

    前言 常见面试题:如何用一句 linux 指令,查找到指定名称的进程并杀掉 常用的杀进程的三个指令:killall .kill .pkill 杀进程几种方式 killall命令用于杀死指定名字的进程( ...

  9. Linux中kill,pkill,killall和xkill命令汇总讲解

    终止一个进程或终止一个正在运行的程式,一般是通过 kill .killall.pkill.xkill 等进行.比如一个程式已死掉,但又不能退出,这时就应该考虑应用这些工具. 另外应用的场合就是在服务器 ...

最新文章

  1. 17Mediator(中介者)模式
  2. wxpython多个面板_wxpython:隐藏其中一个拆分窗口面板
  3. 标定板标定和九点标定的区别_射频导纳物位计的标定方法
  4. redis学习(一)
  5. 《HTTP 权威指南》笔记:第十五章 实体与编码
  6. http请求丢部分数据_温故知新,HTTP/2
  7. Html转快应用方法,卡片跳转快应用指定页面,如何点返回直接退出快应用回到卡片...
  8. jdk的selector(1)
  9. SQLServer2008设置 开启INTERNET远程连接(转)
  10. 【图像分割】基于matlab GUI类间方差阈值图像分割【含Matlab源码 583期】
  11. 城管系统服务器,数字城管系统建设方案详细.doc
  12. flash播放器代码
  13. 一个免费在线文件处理网站-HEIC转JPG Word转长图 PPT转长图 转成JPG 转成PNG 转成BMP(保姆级图文)
  14. 06js超级玛丽小游戏
  15. writeup-khaleesi
  16. CS5216 Capstone DP to hdmi 1080p转换器或者转接线设计原理|CS5216 DP转HDMI转换电路原理图
  17. 如何查看同一服务器上挂有多少个网站
  18. java征兵系统2.0
  19. linux下终端分屏使用
  20. 页面底部悬浮广告或关注公众号代码

热门文章

  1. 计算机组装与维护试题精选,计算机组装与维护试题及答案
  2. 网页图片实现百叶窗效果
  3. VUE+Express+MongoDB前后端分离,实现一个便签墙(一)
  4. C/C++中关于 引用 的功能和使用
  5. 2021啰里啰嗦的个人总结
  6. Webhacking writeup By Assassin [随便玩一玩]
  7. 华为eNSP+抓包Wireshark+虚拟机VirtualBox安装教程
  8. 解决 unity The option setting ‘android.enableR8=false‘ is deprecated
  9. Linux CPU 100%问题 | 理解 CPU负载和 CPU使用率
  10. 浏览器中java在什么位置_win10浏览器安装位置在哪里_如何找到win10浏览器的安装路径...