返回顶部
首页 > 资讯 > 操作系统 >Linux 下使用 killall 命令终止进程的 8 大用法
  • 322
分享到

Linux 下使用 killall 命令终止进程的 8 大用法

2023-06-05 21:06:08 322人浏览 独家记忆
摘要

linux 的命令行提供很多命令来杀死进程。比如,你可以向 kill 命传递一个PID来杀死进程;pkill 命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死。但是还有一个命令叫 killall ,默认情况下,它精确地匹配参数

Linux 下使用 killall 命令终止进程的 8 大用法

linux 的命令行提供很多命令来杀死进程。比如,你可以向 kill 命传递一个PID来杀死进程;pkill 命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死。

但是还有一个命令叫 killall ,默认情况下,它精确地匹配参数名,然后杀死匹配进程。在这篇文章中,我们将讨论有关这个命令的实际应用。

默认情况下,killall 命令将向一个/组进程发送一个 SIGTERM 信号,但是,也可以通过参数发送一个指定的信号。

下面我们通过例子详细介绍 killall 的 8 大用法。

1. 基本用法

假如我们 3 个进程在运行,分别是 hello1, hello2, hello3 ,现在我们想杀死 hello1 进程,可以直接使用如下方式:

killall hello1

运行的结果如下:

[alvin@VM_0_16_Centos test]$ ps aux | grep hello
alvin    12061  0.0  0.0   4152   344 pts/0    S    14:41   0:00 ./hello1
alvin    12074  0.0  0.0   4152   344 pts/0    S    14:41   0:00 ./hello2
alvin    12084  0.0  0.0   4152   340 pts/0    S    14:41   0:00 ./hello3
alvin    12089  0.0  0.0 112648   964 pts/0    R+   14:41   0:00 grep --color=auto hello
[alvin@VM_0_16_centos test]$ killall hello1
[1]   Terminated              ./hello1
[alvin@VM_0_16_centos test]$ ps aux | grep hello
alvin    12074  0.0  0.0   4152   344 pts/0    S    14:41   0:00 ./hello2
alvin    12084  0.0  0.0   4152   340 pts/0    S    14:41   0:00 ./hello3
alvin    12170  0.0  0.0 112648   964 pts/0    R+   14:42   0:00 grep --color=auto hello

可以看到,hello1 进程已经被杀死了。

剩下的 hello2 和 hello3 进程,我们想一次性杀死他们,也就是批量杀死进程,可以如下操作:

[alvin@VM_0_16_centos test]$ killall hello*
hello: no process found
hello1: no process found
hello.c: no process found
[2]-  Terminated              ./hello2
[3]+  Terminated              ./hello3

如此,以 hello 开头的进程全部被干掉。

2. 终止某个用户所运行的进程

我们可以杀死以满足某个正则表达式的一组进程,同样的,我们也可以杀死某个用户运行的所有进程。

比如,用户 harry 现在运行如下几个进程:

[alvin@VM_0_16_centos test]$ ps aux | grep harry
root     13675  0.0  0.2 148236  5584 ?        Ss   14:55   0:00 sshd: harry [priv]
harry    13677  0.0  0.1 148236  2944 ?        S    14:55   0:00 sshd: harry@pts/1
root     13678  0.0  0.2 148236  5444 ?        Ss   14:55   0:00 sshd: harry [priv]
harry    13680  0.0  0.1 148236  2252 ?        S    14:55   0:00 sshd: harry@notty
harry    13681  0.0  0.1  53228  2168 ?        Ss   14:55   0:00 /usr/libexec/openssh/sftp-server
harry    13694  0.0  0.1 116436  3252 pts/1    Ss+  14:55   0:00 -bash
harry    13948  0.0  0.0   4152   344 pts/1    S    14:57   0:00 ./hello1
harry    13952  0.0  0.0   4152   344 pts/1    S    14:57   0:00 ./hello2
harry    13959  0.0  0.0   4152   344 pts/1    S    14:57   0:00 ./hello3
alvin    14005  0.0  0.0 112648   964 pts/0    R+   14:58   0:00 grep --color=auto harry

我们现在想杀死 harry 所运行的所有进程,可以以如下方式操作:

killall -u harry

运行结果如下:

[alvin@VM_0_16_centos test]$ sudo killall -u harry
[alvin@VM_0_16_centos test]$ ps aux | grep harry
alvin    14040  0.0  0.0 112648   964 pts/0    R+   14:58   0:00 grep --color=auto harry

但是,这个选项要慎用,因为它会把该用户所有进程,包括终端进程,全部杀死,将导致该用户直接退出。所以,如果不想挨揍的话不要轻意尝试这个选项。

3. 终于时间的方式终止进程

假如我们现在运行了很多程序,我们只想杀死运行时间超过 5h 的进程,那么可以使用 -o 选项,其中 o 代表 older 如下:

killall -o 5h

同样地,如果你想杀死进行时间小于 4h 的进程,那么可以使用 -y 选项,其中 y 代表 younger ,如下:

killall -y 4h

这两个选项同样非常粗暴,也会把终端退出,所以先不演示了。

4. 忽略大小写

默认情况下,killall 命令是大小写敏感的,所以我们如果写错大小写,将无法正确杀死进程。

[alvin@VM_0_16_centos test]$ killall HELLO1
TEST1: no process found

如果我们想忽略大小写,可以加上 -I (大写字母 i )选项。

[alvin@VM_0_16_centos test]$ killall -I HELLO1
[1]   Terminated              ./hello1
5. 关闭命令执行回显

默认情况下,killall 会告诉你命令执行情况,但是,我们如果不关心它的执行结果,只想让它静默执行,该怎么办?只需加上 -q 选项即可,其中 q 表示 quite , 如下:

[alvin@VM_0_16_centos test]$ killall HELLO2
HELLO2: no process found
[alvin@VM_0_16_centos test]$ killall -q HELLO2
[alvin@VM_0_16_centos test]$
6. 列出所有支持的信号

如前文所述,默认情况下,killall 命令将发送 SIGTERM 信号,那么,安可以发送其它信号吗?当然是可以的。可以使用 -l 选项查看 killall 所支持的所有信号:

[alvin@VM_0_16_centos test]$ killall -l
HUP INT QUIT ILL TRAP ABRT ioT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED

你可以使用 -s 选项(后面跟一个信号名)来向一个进程发送特殊信号。

7. 交互式操作

如果你在杀死多个进程时不太放心,担心把不该杀死的进程给杀死了,那么你可以使用 -i 选项,这样就可以自由决定哪些进程应该被杀死,哪些进程应该被保留。

[alvin@VM_0_16_centos test]$ killall -i hello*
Kill hello2(13825) ? (y/N) y
Kill hello3(13831) ? (y/N) N
hello: no process found
hello1: no process found
hello3: no process found
hello.c: no process found
[2]-  Terminated              ./hello2
8. 等待直到某个进程被终止

当一个信号被发送至某个进程,如果你想确定该进程已经被杀死了才返回执行结果,可以使用 -w 选项,其中 w 代表 wait ,如下:

[alvin@VM_0_16_centos test]$ killall -w hello1
[4]+  Terminated              ./hello1

这里好像看不出什么效果,但实际执行的时候,可以发现执行结果会在一两秒后出现,而不加 -w 选项的话,执行结果马上就显示。

--结束END--

本文标题: Linux 下使用 killall 命令终止进程的 8 大用法

本文链接: https://lsjlt.com/news/244794.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux 下使用 killall 命令终止进程的 8 大用法
    Linux 的命令行提供很多命令来杀死进程。比如,你可以向 kill 命传递一个PID来杀死进程;pkill 命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死。但是还有一个命令叫 killall ,默认情况下,它精确地匹配参数...
    99+
    2023-06-05
  • Linux下使用killall命令终止进程的8大用法实例详解
    linux 的命令行提供很多命令来杀死进程。比如,你可以向 kill 命传递一个PID来杀死进程;pkill 命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死。 但是还有一个命令叫 killall ,默认情...
    99+
    2022-06-04
    linux killall命令终止进程 linux killall命令 linux 终止进程
  • Linux中怎么使用killall命令终止进程
    Linux中怎么使用killall命令终止进程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、基本用法假如我们 3 个进程在运行,分别是 hello1, hello2, ...
    99+
    2023-06-16
  • Linux中用于终结进程的kill和pikill及killall命令的用法
    这篇文章主要介绍“Linux中用于终结进程的kill和pikill及killall命令的用法”,在日常操作中,相信很多人在Linux中用于终结进程的kill和pikill及killall命令的用法问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-06-12
  • Linux基础命令killall的用法
    这篇文章主要介绍“Linux基础命令killall的用法”,在日常操作中,相信很多人在Linux基础命令killall的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux基础命令killall的用法...
    99+
    2023-06-05
  • Linux下终端多路复用器screen命令的使用方法
    这篇文章主要介绍“Linux下终端多路复用器screen命令的使用方法”,在日常操作中,相信很多人在Linux下终端多路复用器screen命令的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux...
    99+
    2023-06-15
  • Linux下partprobe命令的使用方法
    这篇文章主要讲解了“Linux下partprobe命令的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下partprobe命令的使用方法”吧!linux上,在安装系统之后,...
    99+
    2023-06-12
  • linux下tee命令的使用方法
    本篇内容介绍了“linux下tee命令的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!tee  功能说明:读取标准输入的数据,并将其...
    99+
    2023-06-13
  • Linux下mount命令的使用
    这篇文章主要讲解了“Linux下mount命令的使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下mount命令的使用”吧!Linux mount命令是经常会使用到的命令,它用于...
    99+
    2023-06-16
  • linux下sar命令的用法
    本篇内容介绍了“linux下sar命令的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! linux...
    99+
    2024-04-02
  • Linux下date命令的用法
    这篇文章主要介绍Linux下date命令的用法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!date命令的帮助信息[root@localhost source]# date --help用法:date [选项]......
    99+
    2023-06-09
  • Linux下chattr命令的用法
    这篇文章主要介绍“Linux下chattr命令的用法”,在日常操作中,相信很多人在Linux下chattr命令的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下chattr命令的用法”的疑惑有所...
    99+
    2023-06-05
  • Linux下sed命令的用法
    本篇内容介绍了“Linux下sed命令的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Sed简介Sed:Stream Editor&...
    99+
    2023-06-12
  • linux下crontab命令的用法
    这篇文章主要讲解了“linux下crontab命令的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下crontab命令的用法”吧!一、crond简介crond是linux下用来...
    99+
    2023-06-13
  • linux下cat命令的用法
    这篇文章主要讲解了“linux下cat命令的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下cat命令的用法”吧!1.命令格式:cat [选项] [文件]...2.命令功能:c...
    99+
    2023-06-13
  • linux下echo命令的用法
    这篇文章主要介绍“linux下echo命令的用法”,在日常操作中,相信很多人在linux下echo命令的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下echo命令的用法”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • linux下at命令的用法
    本篇内容介绍了“linux下at命令的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!linux at命令用户使用linux at命令在指...
    99+
    2023-06-17
  • Linux下find命令的用法
    这篇文章主要讲解了“Linux下find命令的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下find命令的用法”吧!当使用 Linux 下的 find 命令时,请使用 -ok...
    99+
    2023-06-16
  • Linux下top命令的用法
    这篇文章主要介绍“Linux下top命令的用法”,在日常操作中,相信很多人在Linux下top命令的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下top命令的用法”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-05
  • Linux下mkisofs命令的用法
    这篇文章主要讲解了“Linux下mkisofs命令的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下mkisofs命令的用法”吧!mkisofsmkisofs指令可以创建ISO...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作