child_process.unref()
发布于
在使用nodejs在使用子进程时有以下方式
child_process.spawn(command[, args][, options])
child_process.exec(command[, options][, callback])
child_process.execFile(file[, args][, options][, callback])
child_process.fork(modulePath[, args][, options])
的默认情况下,父进程会等待被分离的子进程退出。 为了防止父进程等待给定的 subprocess,可以使用 subprocess.unref() 方法。 这样做会导致父进程的事件循环不包含子进程的引用计数,使得父进程独立于子进程退出,除非子进程和父进程之间建立了一个 IPC 信道。
这时调用child_process.unref(),可以在不退出子进程的情况下,愉快的不阻塞父进程,使的父进程可以愉快的退出。
var child_process = require('child_process'); var child = child_process.spawn('node', ['child.js'], { detached: true, // 这里要设置成true stdio: 'ignore' // 备注:如果不置为 ignore,那么 父进程还是不会退出 }); child.unref();
除了直接将stdio设置为ignore,还可以将它重定向到本地的文件。
var child_process = require('child_process'); var fs = require('fs'); var out = fs.openSync('./out.log', 'a'); var err = fs.openSync('./err.log', 'a'); var child = child_process.spawn('node', ['child.js'], { detached: true, stdio: ['ignore', out, err] }); child.unref();
或 匿名发表评论
找到 0 条评论