Linux几种中断信号的区别:HUP,INT,KILL,TERM,TSTP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux几种中断信号的区别:HUP,INT,KILL,TERM,TSTP相关的知识,希望对你有一定的参考价值。

Linux的HUP,INT,KILL,TERM,TSTP中断信号区别为:键入不同、对应操作不同、启用不同。

一、键入不同

1、HUP中断信号:HUP中断信号是当用户键入<Ctrl+X>时由终端驱动程序发送的信号。

2、INT中断信号:INT中断信号是当用户键入<Ctrl+I>时由终端驱动程序发送的信号。

3、KILL中断信号:KILL中断信号是当用户键入<Ctrl+Z>时由终端驱动程序发送的信号。

4、TERM中断信号:TERM中断信号是当用户键入<Ctrl+ \\>时由终端驱动程序发送的信号。

5、TSTP中断信号:TSTP中断信号是当用户键入<Ctrl+T>时由终端驱动程序发送的信号。二、对应操作不同

1、HUP中断信号:HUP中断信号的对应操作为让进程挂起,睡眠。

2、INT中断信号:INT中断信号的对应操作为正常关闭所有进程。

3、KILL中断信号:KILL中断信号的对应操作为强制关闭所有进程。

4、TERM中断信号:TERM中断信号的对应操作为正常的退出进程。

5、TSTP中断信号:TSTP中断信号的对应操作为暂时停用进程。

三、启用不同

1、HUP中断信号:HUP中断信号发送后,可以重新被用户再次输入恢复启用进程。

2、INT中断信号:INT中断信号发送后,不可以重新被用户再次输入恢复启用进程。

3、KILL中断信号:KILL中断信号发送后,不可以重新被用户再次输入恢复启用进程。

4、TERM中断信号:TERM中断信号发送后,可以重新被用户再次输入启用进程。

5、TSTP中断信号:TSTP中断信号发送后,可以重新被用户再次输入继续使用进程。

参考技术A HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
INT----是当用户键入时由终端驱动程序发送的信号.这是一个终止当前操作的请求.如果捕获了这个信号,一些简单的程序应该退出,或者允许自给被终止,这也是程序没有捕获到这个信号时的默认处理方法.拥有命令行或者输入模式的那些程序应该停止它们在做的事情,清除状态,并等待用户的再次输入.
TERM----是请求彻底终止某项执行操作.它期望接收进程清除自给的状态并退出
HUP---- 有两种解释.
1,他被许多守护进程理解为一个重新设置的请求.如果一个进程不用重新启动就能重新读取它的配置文件并调整自给以适应变化的话,那么HUP通常来触发这种行为.
2.HUP信号有时候又终端驱动程序生成,试图来"清除"("终止")跟某个特定终端相连的那些进程.例如:某个终端会话结束时,或者当调制解调器被挂断时,shell后台不接受HUP的信号的影响.有的的用户可以使用nohup来模仿这种行为.
QUIT和TERM类似----不同的是:它会生成内存转储追问

谢谢您的回答,我对KILL和TERM的通俗理解是这样的:
1.KILL是立即把进程给结束掉,是无条件的;但会不会造成一些未确定状态呢?比如数据会不会正常保存?

2TERM是友好告诉进程说要退出,然后进程保存好数据,再正常退出。

不知道是否正确。

本回答被提问者采纳
参考技术B

区别具体如下:

1、键入不同

①HUP中断信号:HUP中断信号是当用户键入时由终端驱动程序发送的信号。

②INT中断信号:INT中断信号是当用户键入时由终端驱动程序发送的信号。

③KILL中断信号:KILL中断信号是当用户键入时由终端驱动程序发送的信号。

④TERM中断信号:TERM中断信号是当用户键入时由终端驱动程序发送的信号。

⑤TSTP中断信号:TSTP中断信号是当用户键入时由终端驱动程序发送的信号。

2、对应操作不同

①HUP中断信号:HUP中断信号的对应操作为让进程挂起,睡眠。

②INT中断信号:INT中断信号的对应操作为正常关闭所有进程。

③KILL中断信号:KILL中断信号的对应操作为强制关闭所有进程。

④TERM中断信号:TERM中断信号的对应操作为正常的退出进程。

⑤TSTP中断信号:TSTP中断信号的对应操作为暂时停用进程。

3、启用不同

①HUP中断信号:HUP中断信号发送后,可以重新被用户再次输入恢复启用进程。

②INT中断信号:INT中断信号发送后,不可以重新被用户再次输入恢复启用进程。

③KILL中断信号:KILL中断信号发送后,不可以重新被用户再次输入恢复启用进程。

④TERM中断信号:TERM中断信号发送后,可以重新被用户再次输入启用进程。

⑤TSTP中断信号:TSTP中断信号发送后,可以重新被用户再次输入继续使用进程。

参考技术C HUP是让进程挂起,睡眠
INT 中断(同 Ctrl + C)
kill 六亲不认的杀掉
term正常的退出进程
TSTP 停止位
参考技术D 而kill -15是正常杀掉? 他们三者之间有什么区别?谢谢! ctrl+c是终止当前在终端窗口中运行的命令或脚本, kill -9 pid,是不顾后果的强制终止(,

trap

 

 1 信号         说明
 2 HUP(1)     # 挂起,通常因终端掉线或用户退出而引发
 3 INT(2)     # 中断,通常因按下Ctrl+C组合键而引发
 4 QUIT(3)    # 退出,通常因按下Ctrl+\组合键而引发
 5 ABRT(6)    # 中止,通常因某些严重的执行错误而引发
 6 ALRM(14)   # 报警,通常用来处理超时
 7 TERM(15)   # 终止,通常在系统关机时发送
 8  
 9 trap捕捉到信号之后,可以有三种反应方式:
10     1、执行一段程序来处理这一信号
11     2、接受信号的默认操作
12     3、忽视这一信号
13  
14 第一种形式的trap命令在shell接收到 signal list 清单中数值相同的信号时,将执行双引号中的命令串:
15 trap commands signal-list   # 单引号,要在shell探测到信号来的时候才执行命令和变量的替换,时间一直变
16 trap "commands" signal-list   # 双引号,shell第一次设置信号的时候就执行命令和变量的替换,时间不变

 

以上是关于Linux几种中断信号的区别:HUP,INT,KILL,TERM,TSTP的主要内容,如果未能解决你的问题,请参考以下文章

linux中如何重启某一进程

从 cin 读取的进程上的 HUP 信号

shell编程 信号处理

trap

[Nginx] 在Linux下的启动停止和重加载

[Nginx] 在Linux下的启动停止和重加载