【发布时间】:2013-11-25 07:49:13
【问题描述】:
使用 shelljs 创建子进程
!/usr/bin/env node
require('/usr/local/lib/node_modules/shelljs/global');
fs = require("fs");
var child=exec("sudo mongod &",{async:true,silent:true});
function on_exit(){
console.log('Process Exit');
child.kill("SIGINT");
process.exit(0)
}
process.on('SIGINT',on_exit);
process.on('exit',on_exit);
子进程仍在运行..杀死父进程后
【问题讨论】:
-
您正在运行
mongod &,它将进程分叉并将其发送到后台。发送 SIGINT 不会杀死实际的mongod进程。 -
还有一件事,而不是执行
sudo mongod,执行mongod并使用sudo运行您的脚本。如果需要,您可以在执行mongod(使用process.setuid()和process.setgid())后删除权限。 -
删除了 '&' 并且它起作用了....谢谢stackoverflow.com/users/303270/fardjad
-
@fardjad,那么如何处理呢?我们都知道你说了什么。写在这里,没有秘密nodejs.org/api/…。但是要处理呢?你知道吗?
-
@Green 也许这有帮助:npmjs.com/package/ps-tree
标签: node.js shell child-process