process如何使用信号(signal)
发布于 3年前 作者 fish 1791 次浏览

NodeJS文档中我们可以看到kill这个方法,给进程发送一个信号

process.kill(pid, [signal])

其中第二个可选参数 signal ,默认会发送 SIGTERM 。

那到底有哪些signal呢? 文档中并没有列出,不过原文中有个"See kill(2) " ,而且看起来发送的信号和linux下的kill命令差不多嘛,于是

>man kill

得到如下结果:

Name     Num   Action    Description
       0          0   n/a       exit code indicates if a signal may be sent
       ALRM      14   exit
       HUP        1   exit
       INT        2   exit
       KILL       9   exit      cannot be blocked
       PIPE      13   exit
       POLL           exit
       PROF           exit
       TERM      15   exit
       USR1           exit
       USR2           exit
       VTALRM         exit
       STKFLT         exit      might not be implemented
       PWR            ignore    might exit on some systems
       WINCH          ignore
       CHLD           ignore
       URG            ignore
       ..................

嘎多的signal,检查一下发现,NodeJS中的signal的名字只要加上 SIG 前缀即可,比如 SIGALRM,SIGHUP…

然后:

process.on('SIGINT', function () {
  console.log('Got SIGINT.  Press Control-D to exit.');
});

可以根据不同的信号绑定不同的事件

1 回复

这个不错,之前是直接看linux内核手册关于信号的文档 Standard Signals,原来直接man就可以了

回到顶部