1// This is not the set of all possible signals. 2// 3// It IS, however, the set of all signals that trigger 4// an exit on either Linux or BSD systems. Linux is a 5// superset of the signal names supported on BSD, and 6// the unknown signals just fail to register, so we can 7// catch that easily enough. 8// 9// Don't bother with SIGKILL. It's uncatchable, which 10// means that we can't fire any callbacks anyway. 11// 12// If a user does happen to register a handler on a non- 13// fatal signal like SIGWINCH or something, and then 14// exit, it'll end up firing `process.emit('exit')`, so 15// the handler will be fired anyway. 16// 17// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised 18// artificially, inherently leave the process in a 19// state from which it is not safe to try and enter JS 20// listeners. 21module.exports = [ 22 'SIGABRT', 23 'SIGALRM', 24 'SIGHUP', 25 'SIGINT', 26 'SIGTERM' 27] 28 29if (process.platform !== 'win32') { 30 module.exports.push( 31 'SIGVTALRM', 32 'SIGXCPU', 33 'SIGXFSZ', 34 'SIGUSR2', 35 'SIGTRAP', 36 'SIGSYS', 37 'SIGQUIT', 38 'SIGIOT' 39 // should detect profiler and enable/disable accordingly. 40 // see #21 41 // 'SIGPROF' 42 ) 43} 44 45if (process.platform === 'linux') { 46 module.exports.push( 47 'SIGIO', 48 'SIGPOLL', 49 'SIGPWR', 50 'SIGSTKFLT', 51 'SIGUNUSED' 52 ) 53} 54