Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >kill命令

kill命令

作者头像
WindRunnerMax
发布于 2021-02-25 08:18:16
发布于 2021-02-25 08:18:16
1.5K00
代码可运行
举报
文章被收录于专栏:Czy‘s BlogCzy‘s Blog
运行总次数:0
代码可运行

kill命令

kill命令向指定的pid进程发送信号,如果不指定要发送的signal信号,则默认情况下signalSIGTERM,它会终止进程,要列出所有可用信号,可以使用-l选项获取Linux信号列表,经常使用的信号包括HUPINTKILLSTOPCONT0,可以通过三种方式指定信号: 按数字例如-9,带有SIG前缀例如-SIGKILL,不带SIG前缀例如-KILL。负PID值用于指示过程组ID,如果传递了进程组ID,则该组中的所有进程都将接收到该信号,PID-1是特殊的,其指示除两个以外的所有进程,kill进程本身和initPID 1,其是系统上所有进程的父进程,将-1指定为目标会将信号发送到除这两个以外的所有进程。

语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill pid ...
kill {-signal | -s signal} pid ...
kill {-l | --list[=signal] | -L | --table}

参数

  • -signal, -s signal: 要发送的信号的名称、缩写名或编号,前面有破折号,例如-SIGTERM-TERM-15等,要查看可用信号的列表可以使用kill -l
  • pid: 数字进程ID,如果不确定某个进程的PID是什么,可以使用ps命令将其列出例如ps -aux,通常会配合管道与grep使用例如查看nginx相关的进程 ps -aux | grep nginx
  • -l, --list[=signal]: 列出可用的信号名称,用-l--list列出所有信号名称,使用--list = signal,可将数字转换为其信号名称。
  • -L, --table: 在表格中列出可用的信号名称和编号。

信号

下列的某些信号是不能使用的,因为系统有可能不支持这些信号,或者这些信号已中断,详情可以实际查阅系统的kill -l命令。每个系统都有信号13915,这些是最常见的信号。终止信号不仅用于关闭锁定的应用程序,还可以阻止软件执行不允许的任务,这意味着其中一些终止信号是安全的一部分,另外kill命令不仅停止/终止进程,而且还暂停,继续和重新启动进程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
  • SIGHUP: SIGHUP信号用于断开进程与父进程的连接,这也可以用于重新启动进程,这对于内存泄漏的守护程序很有用。
  • SIGINT: 该信号与按Ctrl+C相同,在某些系统上delete + break会向进程发送相同的信号,该进程被中断并停止,但是该进程自身可以忽略此信号。
  • SIGQUIT: 这类似于SIGINT,但由于QUIT字符通常是由Ctrl+\来控制,进程在收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。
  • SIGILL: 当一个进程执行一个错误的、禁止的或未知的功能时,系统向该进程发送SIGILL信号,这是代表非法操作的信号。
  • SIGTRAP: 此信号用于调试目的,当某个进程执行了某个操作或满足了调试器正在等待的条件时,此信号将被发送到该进程。
  • SIGABRT: 该终止信号是中止信号,通常进程会在自身上发出此终止信号。
  • SIGBUS: 当一个进程被发送SIGBUS信号时,是因为该进程导致了一个总线错误,通常这些总线错误是由于进程试图使用假物理地址或进程的内存对齐设置不正确造成的。
  • SIGFPE: 被零除的进程使用SIGFPE终止。
  • SIGKILL: SIGKILL信号强制进程立即停止执行,程序不能忽略该信号,此过程也无法清除。
  • SIGUSR1: 这表示用户定义的条件,用户可以通过在sigusr1.c中编程命令来设置此信号。
  • SIGSEGV: 当应用程序有分段冲突时,这个信号被发送到进程。
  • SIGUSR2: 这表示用户定义的条件。
  • SIGPIPE: 当进程尝试写入缺少与读取器连接的一端的管道时,此信号将发送到进程,读取器是在管道末端读取数据的过程。
  • SIGALRM: 当实时或时钟计时器到期时,将发送SIGALRM
  • SIGTERM: 该信号请求进程停止运行,该信号可以被程序自身忽略,该过程有时间正常关闭,当程序正常关闭时,这意味着它有时间保存进度并释放资源,换句话说即它不被迫停止。
  • SIGCHLD: 当父进程丢失其子进程时,将向父进程发送SIGCHLD信号,这将清理子进程使用的资源,子进程指的是由另一个称为父进程的进程启动的进程。
  • SIGCONT: 要使进程在被SIGTSTPSIGSTOP信号暂停后继续执行,需要将SIGCONT信号发送到已暂停的进程,这是CONTiNUE SIGNAL,该信号对Unix作业控制执行后台任务很有帮助。
  • SIGSTOP: 该信号使操作系统暂停进程的执行,进程自身不能忽略该信号。
  • SIGTSTP: 这个信号类似于按下Ctrl+Z,它向包含进程的终端发出请求,请求进程暂时停止,进程自身可以忽略该信号。
  • SIGTTIN: 当进程试图从tty终端读取数据时,进程接收到这个信号。
  • SIGTTOU: 当某个进程尝试向tty终端进行写操作时,该进程将收到此信号。
  • SIGURG: 当进程中有紧急数据要读取或数据非常大时,SIGURG信号将发送到该进程。
  • SIGXCPU: 当某个进程在分配的时间之后使用CPU时,系统将向该进程发送该信号,SIGXCPU的行为就像一个警告,该进程有时间保存进度(如果可能)并在系统使用SIGKILL终止该进程之前将其关闭。
  • SIGXFSZ: 文件系统对文件的大小有限制,当程序尝试违反此限制时,系统将发送该过程SIGXFSZ信号。
  • SIGVTALRM: SIGVTALRM在进程使用的CPU时间结束时发送。
  • SIGPROF: 当进程以及由系统代表进程使用的CPU时间过去时,将发送SIGPROF信号。
  • SIGWINCH: 当进程在更改其大小的终端中时,该进程将接收此信号。
  • SIGIO: SIGPOLL的别名或至少表现得很像SIGPOLL
  • SIGPWR: 电源故障将导致系统将该信号发送到进程,如果系统仍在运行。
  • SIGSYS: 为系统调用提供无效参数的进程将接收此信号。
  • SIGRTMIN*: 这是一组在系统之间变化的信号,它们被标记为SIGRTMIN + 1SIGRTMIN + 2SIGRTMIN + 3...,通常最多15个,这些是用户定义的信号,它们必须在Linux内核的源代码中进行编程。
  • SIGRTMAX*: 这是一组在系统之间变化的信号,它们被标记为SIGRTMAX-1SIGRTMAX-2SIGRTMAX-3...,通常最多14个,这些是用户定义的信号,它们必须在Linux内核的源代码中进行编程。
  • SIGEMT: 指示一个实现定义的硬件故障。
  • SIGINFO: 终端有时可能会向进程发送状态请求,发生这种情况时,进程也将收到此信号。
  • SIGLOST: 试图访问锁定文件的进程将收到此信号。
  • SIGPOLL: 当进程引起异步I/O事件时,会向该进程发送SIGPOLL信号。

示例

要显示所有可用信号,查看信号的详细信息可以使用man命令,例如信号7 SIGBUS即使用man 7 signal

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -l

在表格中列出可用的信号名称和编号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -L

终端断线,重新加载配置文件,平滑重启。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -1 111

通知进程关闭,使进程自行关闭,这个关闭是安全、干净地退出,如果kill命令后直接加进程的pid号默认选项为-15,这个信号是可以被进程自身忽略并继续执行自身的,即该信号是可以被阻塞和忽略的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -15 111

强行中断当前程序的执行,类似Ctrl+C按键用以结束进程的结果,该信号是可以被阻塞和忽略的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -2 111

退出进程,类似Ctrl+\按键用以结束进程的结果,该信号是可以被阻塞和忽略的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -3 111

强行关闭进程,-9信号是无条件终止,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理,该信号是不可以被阻塞和忽略的,当然通常是不建议使用kill -9的,应该尝试使用-15以及-2给目标进程一个清理自身资源工作的机会,不要用收割机来修剪花盆里的花。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -9 111

暂停进程,对于暂停信号进程自身不能忽略该信号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -19 111 

激活进程,对于激活信号必须发送到已暂停的进程才有效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kill -18 111 

每日一题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/WindrunnerMax/EveryDay

参考

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.computerhope.com/unix/ukill.htm
https://www.linux.org/threads/kill-commands-and-signals.8881/
https://www.geeksforgeeks.org/kill-command-in-linux-with-examples/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux 信号
Linux进程间通信(Inter-Process communication, IPC)机制通常分6种:
Laikee
2022/04/25
5.1K0
Linux 信号
L007Linux信号、信号处理和信号处理函数
信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。在Linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某种程序发生了什么事件,还可以给进程传递数据。
上善若水.夏
2018/09/28
4.2K0
Linux信号列表及其详解
列表中,编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。
zy010101
2019/05/25
14.6K0
Linux 命令(76)—— kill 命令
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
恋喵大鲤鱼
2019/10/22
2.9K0
一天一个 Linux 命令(36):kill 命令
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/187
joshua317
2021/11/10
4460
Linux之kill命令
原文链接:https://rumenz.com/rumenbiji/linux-kill.html
入门笔记
2021/07/27
4.5K0
进程管理:kill 命令之 -9 与 -15
kill :发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。若仍无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
程序员架构进阶
2021/03/04
7.1K0
进程管理:kill 命令之 -9 与 -15
linux | kill命令详解以及linux中的信号
在man手册中对kill命令的解释如下, 不难看出, kill命令是一个用于将指定的signal发送给进程的工具
Amadeus
2023/04/12
2.8K0
kill(1) command
kill 命令可以发送指定的信号到相应的进程或进程组。不指定信号缺省发送 SIGTERM(15)来终止指定进程。如果想强制终止进程,可以显示指定 SIGKILL(9) 信号,因为该信号无法被进程捕获。
恋喵大鲤鱼
2023/10/12
2750
Linux 精通Linux的“kill”命令
无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭。在Linux(还有Mac),你可以用一个”kill”命令强制终结它。本篇博文中,我们将展示给你多种方式使用”kill”命令终结应用。
小小工匠
2021/08/16
3.7K0
【linux命令讲解大全】157.深入探究Linux操作系统中的halt和kill命令的用途和功能
halt命令用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
全栈若城
2024/03/02
1790
每天学一个 Linux 命令(90):kill/killall
kill 命令用于删除执行中的程序或工作。kill 命令向进程发送信号。如果您未指定要发送的信号,则默认情况下会发送 TERM 信号,从而终止该过程。
民工哥
2021/04/21
4460
重识Nginx - 17 Nginx支持的信号说明
说明: linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因
小小工匠
2022/10/06
1.1K0
重识Nginx - 17 Nginx支持的信号说明
ubuntu kill命令_killall命令
Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。
全栈程序员站长
2022/11/16
1.9K0
kill命令详解_linux杀死进程kill
绝大多数人对 kill 命令的理解就是结束一个进程,除了这个 kill 其实还有其它的功能。
全栈程序员站长
2022/11/18
6K0
Linux运行有时间限制的命令—timeout命令
timeout是用来控制程序运行的时间,运行指定的命令。如果在指定时间后仍在运行,则杀死该进程。使用timeout命令可以让程序在指定的时间内仍然运行则强制退出。
胡齐
2020/02/25
14.2K0
linux系列之:告诉他,他根本不懂kill
和很多程序员打过交道,这些程序员可能熟知for遍历的好几种写法,但是却对写出来的程序部署的环境一无所知。我敢打赌,在spring boot出现之后,已经很少有程序员知道tomcat到底是怎么运行的了。对于他们来说,运行一个jar包就完事了。
程序那些事
2021/09/15
3540
linux中kill命令详解_linux kill函数
发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。如果无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户可操作所有用户的进程,非root用户只能操作自己的进程。
全栈程序员站长
2022/11/17
4.4K0
进程间通讯(三).signal
UNIX/Linux 是多任务的操作系统,通过多个进程分别处理不同事务来实现,如果多个进程要进行协同工作或者争用同一个资源时,互相之间的通讯就很有必要了
franket
2021/09/15
1.6K0
Linux 信号(Signal)
我们经常会使用 kill 命令杀掉运行中的进程,对多次杀不死的进程进一步用 kill -9 干掉它。你可能知道这是在用 kill 命令向进程发送信号,优雅或粗暴的让进程退出。我们能向进程发送很多类型的信号,其中一些常见的信号 SIGINT 、SIGQUIT、 SIGTERM 和 SIGKILL 都是通知进程退出,但它们有什么区别呢?很多人经常把它们搞混,这篇文章会让你了解 Linux 的信号机制,以及一些常见信号的作用。
mazhen
2023/11/24
1.4K0
Linux 信号(Signal)
相关推荐
Linux 信号
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验