节点subprocess清理
节点进程以require('child_process').spawn
开始, require('child_process').spawn
可以close
并exit
。 我假设他们也可以在一些情况下永远挂起,而不会礼貌地告诉节点。 我如何确保我的Node应用程序始终清理其subprocess很好? 我知道kill
可以用来“发送信号给subprocess”。 这听起来不像是一个保证,特别是因为文档说:“请注意,虽然函数被称为杀死,传递给subprocess的信号可能不会真正杀死它,杀死真的只是一个信号发送到一个进程。
这正是如何杀死在Linux上的作品。 节点对应物提供相同的function。
kill
默认发送SIGTERM信号。 强制杀死通过kill -9
发送SIGKILL。 SIGKILL不能被捕获,阻塞或忽略。 但是,这是最后的手段。 它阻止进程清理锁文件。
请参阅kill文件和使用的信号 。