
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中断信号发送后,可以重新被用户再次输入继续使用进程。
用trap命令,正常退出调用的应该是SIGHUP(1),非正常退出根据情况不同调用SIGINT(2), SIGQUIT(3),SIGTERM(15)。一般情况的退出基本上1 2 3 15都能包括了。例:
##################################
#!/bin/sh
trap`echo get_messages` 1 2 3 15
##################################
其中用``包含的部分写你要执行的脚本或者命令。
后面的1 2 3 15是捕捉的SIGNAL的号码
★上面例子的意思是:当所执行的process接收到SIGHUP(1),SIGINT(2), SIGQUIT(3), SIGTERM(15)信号的时候,输出get_messages然后终止程序。
※如果你要执行复杂脚本或者命令的话,建议你把他写成函数
比如:
#################################
#!/bin/sh
trap `echo_many_messages` 1 2 3 15
echo_many_messages(){
echo a
echo b
echo c
}
##################################
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)