javascript - 奇怪的执行问题 - 标准输出未显示 - 回调不起作用

标签 javascript node.js exec child-process

奇怪的是,同样的代码之前已经工作过。 看来当我现在运行下面的代码时,我没有得到回调。控制台日志均不起作用。但是,如果我运行“ls”而不是 mongo,例如它工作正常,类似地,如果我编写类似 mongod -gfsssl 的内容(应该显示错误),我确实会收到错误。另外,如果我在终端中运行与下面相同的命令,它运行良好。

var sys = require('sys');
var exec = require('child_process').exec;
var nodemon = require('nodemon');

exec('mongod --dbpath="./data"', function(error, stdout, stderr) {
    console.log(stderr);
    console.log(error);
    console.log(stdout);

    nodemon({
        script: 'app/server.js',
        ext: 'js'
    });

    nodemon.on('start', function () {
        console.log('App has started');
    }).on('quit', function () {
        console.log('App has quit');
    }).on('restart', function (files) {
        console.log('App restarted due to: ', files);
    });
});

最佳答案

您确定 mongod 在执行该命令后将自己置于后台吗?听起来它在前台运行,导致进程永远不会退出(这就是为什么你的回调永远不会被调用)。

关于javascript - 奇怪的执行问题 - 标准输出未显示 - 回调不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23953527/

相关文章:

C: execv 之前的 dup2()

java - Runtime.exec 和 Android 的问题

javascript - 当 AngularJS 变量在 $scope 中定义时使用对象名称

javascript - 用另一个对象的索引填充一个对象

node.js - 解决方法 lambda 500MB 临时存储

javascript - SailsJS 是否支持 ES6?

node.js - 将字段合并为一个

ruby - Ruby 中的 Linux 命令

javascript - 在 AngularJS + WebAPI 中使用 $http

javascript - 这行 JQuery 代码是什么意思?