.kill(SIGTERM) a node process, and it doesn't exit with signal=SIGTERM, it exits with code=0x80+SIGTERM, signal = null. It appears to establish a signal hander, and call exit(2) from within. This behaviour is undocumented, but doesn't directly have anything to do with child process, other than the docs strongly suggest that if you kill with a signal, that it will die by signal, and the signal arg will be the name of the signal.