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