详解Linux命令--killall

killall 命令是Linux中最常用的命令之一,用于通过进程名而非进程ID来向进程发送信号。本文将详细介绍killall命令的用法,并给出具体的示例。

1. 基本语法

killall的基本语法如下:

killall [options] [signal] program ...
  • [options]:可选参数,用于控制发送信号的行为。
  • [signal]:可选的信号名称或编号。
  • program ...:要发送信号的程序名称或正则表达式。

2. 常用选项

2.1 -l

列出所有信号名称及其编号。

示例:

列出所有信号名称及其编号:

killall -l

2.2 -s SIGNAL

指定信号名称。

示例:

向名为myprogram的进程发送SIGTERM信号:

killall -s SIGTERM myprogram

2.3 -n SIGNAL_NUMBER

指定信号编号。

示例:

向名为myprogram的进程发送编号为15的信号:

killall -n 15 myprogram

2.4 -v

详细模式,显示信号名称和进程信息。

示例:

详细模式发送SIGTERM信号给名为myprogram的进程:

killall -v -s SIGTERM myprogram

2.5 -q

不显示错误消息。

示例:

不显示错误消息发送SIGTERM信号给名为myprogram的进程:

killall -q -s SIGTERM myprogram

2.6 -9

强制发送SIGKILL信号,立即终止进程。

示例:

强制发送SIGKILL信号给名为myprogram的进程:

killall -9 myprogram

2.7 -i

交互模式,询问是否发送信号。

示例:

交互模式发送SIGTERM信号给名为myprogram的进程:

killall -i -s SIGTERM myprogram

2.8 -u USERNAME

指定用户名,只对属于该用户的进程发送信号。

示例:

向属于用户john且名为myprogram的进程发送SIGTERM信号:

killall -u john -s SIGTERM myprogram

2.9 -x

扩展模式,允许使用正则表达式匹配进程名。

示例:

向所有以myprogram开头的进程发送SIGTERM信号:

killall -x -s SIGTERM myprogram*

2.10 -r REGEXP

指定正则表达式,只对匹配的进程发送信号。

示例:

向所有以myprogram开头的进程发送SIGTERM信号:

killall -r -s SIGTERM '^myprogram'

2.11 -w

延迟发送信号,等待一段时间后发送。

示例:

延迟发送SIGTERM信号给名为myprogram的进程:

killall -w -s SIGTERM myprogram

2.12 -h

显示帮助信息。

示例:

显示killall命令的帮助信息:

killall -h

2.13 -V

显示版本信息。

示例:

显示killall命令的版本信息:

killall -V

3. 常见信号

以下是一些常见的信号名称及其编号:

  • SIGHUP (1):挂起信号。
  • SIGINT (2):中断信号。
  • SIGQUIT (3):退出信号。
  • SIGILL (4):非法指令信号。
  • SIGTRAP (5):跟踪陷阱信号。
  • SIGABRT (6):程序异常终止信号。
  • SIGBUS (7):总线错误信号。
  • SIGFPE (8):浮点异常信号。
  • SIGKILL (9):强制终止信号。
  • SIGUSR1 (10):用户定义信号1。
  • SIGSEGV (11):段错误信号。
  • SIGUSR2 (12):用户定义信号2。
  • SIGPIPE (13):管道破裂信号。
  • SIGALRM (14):定时器信号。
  • SIGTERM (15):终止信号。
  • SIGSTKFLT (16):堆栈故障信号。
  • SIGCHLD (17):子进程状态变化信号。
  • SIGCONT (18):继续执行信号。
  • SIGSTOP (19):停止执行信号。
  • SIGTSTP (20):停止终端输入信号。
  • SIGTTIN (21):后台进程试图从控制终端读取信号。
  • SIGTTOU (22):后台进程试图写入控制终端信号。
  • SIGURG (23):紧急数据可用信号。
  • SIGXCPU (24):CPU使用时间超过限制信号。
  • SIGXFSZ (25):文件大小超过限制信号。
  • SIGVTALRM (26):虚拟定时器信号。
  • SIGPROF (27):CPU使用时间或虚拟内存使用时间超过限制信号。
  • SIGWINCH (28):窗口大小改变信号。
  • SIGIO (29):I/O可能变得可访问信号。
  • SIGPWR (30):电源失败恢复信号。
  • SIGSYS (31):无效系统调用信号。

4. 实战案例

4.1 向名为myprogram的进程发送SIGTERM信号

向名为myprogram的进程发送SIGTERM信号:

killall -s SIGTERM myprogram

4.2 向名为myprogram的进程发送编号为15的信号

向名为myprogram的进程发送编号为15的信号:

killall -n 15 myprogram

4.3 详细模式发送SIGTERM信号给名为myprogram的进程

详细模式发送SIGTERM信号给名为myprogram的进程:

killall -v -s SIGTERM myprogram

4.4 不显示错误消息发送SIGTERM信号给名为myprogram的进程

不显示错误消息发送SIGTERM信号给名为myprogram的进程:

killall -q -s SIGTERM myprogram

4.5 强制发送SIGKILL信号给名为myprogram的进程

强制发送SIGKILL信号给名为myprogram的进程:

killall -9 myprogram

4.6 交互模式发送SIGTERM信号给名为myprogram的进程

交互模式发送SIGTERM信号给名为myprogram的进程:

killall -i -s SIGTERM myprogram

4.7 向属于用户john且名为myprogram的进程发送SIGTERM信号

向属于用户john且名为myprogram的进程发送SIGTERM信号:

killall -u john -s SIGTERM myprogram

4.8 向所有以myprogram开头的进程发送SIGTERM信号

向所有以myprogram开头的进程发送SIGTERM信号:

killall -x -s SIGTERM myprogram*

4.9 向所有以myprogram开头的进程发送SIGTERM信号

向所有以myprogram开头的进程发送SIGTERM信号:

killall -r -s SIGTERM '^myprogram'

4.10 延迟发送SIGTERM信号给名为myprogram的进程

延迟发送SIGTERM信号给名为myprogram的进程:

killall -w -s SIGTERM myprogram

4.11 显示帮助信息

显示killall命令的帮助信息:

killall -h

4.12 显示版本信息

显示killall命令的版本信息:

killall -V

请注意,某些命令的选项和语法可能会因不同的Linux发行版和版本而略有不同,请根据实际情况调整命令的具体细节。希望这篇文章能为你带来帮助!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值