前言
当Nodejs 进程接收一个信号时,会触发信号事件。我们通过man kill
来查看所有的信号事件
1 HUP (hang up)
2 INT (interrupt)
3 QUIT (quit)
6 ABRT (abort)
9 KILL (non-catchable, non-ignorable kill)
14 ALRM (alarm clock)
15 TERM (software termination signal)
常用信号解释
KILL
kill -9 pid
强制迫使进程在运行时候突然终止,进程再结束后不能自我清理。可能会到导致系统资源无法正常释放
TREM
友好的告诉进程退出,进程先保存好数据,然后再正常退出。
给父进程发送一个TERM信号,试图杀死它和它的子进程。
INT
和 ctrl +c
效果一致
用户键入由终端驱动程序发送的信号。这是一个终止当前操作的请求,如果捕捉了这个信号,一些简单的
应用程序应该退出,这也是程序如果没有捕获这个信号时的默认处理方法。它的传统含义是停止你正在做的事情并等待进一步的用户输入
HUP
HUP和TREM大致相同,但是他有特定作用。当用户从终端断开连接时候,他会自动到发送终端运行的应用程序。HUP
通常是非自愿的,不像TERM
明确发送。
-
被许多守护进程理解为一个重置请求.如果一个进程不用重新启动就能重新读取它的配置文件并调整自己以适应变化的话,那么HUP通常来触发这种行为.
-
由终端驱动程序生成,试图来"清除"(终止)跟某个特定终端相连的进程.
例如:
某个终端会话结束时,或者当调制解调器被挂断时,shell后台不接受HUP的信号的影响.有的用户可使用nohup来模仿这种行为.
网友评论