process如何使用信号(signal)
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就可以了