nodejs:child_process.spawn未报告退出代码
nodejs: child_process.spawn not reporting exit code
在为一个简单的工具编写单元测试时,我无法获得用require('child_process').spawn
启动的子进程的进程退出代码。为了简化if down,请考虑这个简单的节点命令,它以代码35:退出
SHELL>节点-e"进程.退出(35)"&[1] 23427[1] +Saída 35节点-e"进程.退出(35)"
现在考虑以下文件,其中使用exec
和spawn
执行上面的命令。目标正在捕获退出代码:
SHELL>猫WTF.jsvar cp=require('child_process');cp.exec('node-e"process.exet(35);"',函数(err){console.log('儿童退出代码(exec)',错误代码);});cp.spawn('node',['-e','"process.exet(35);"']).on('exit',函数(代码){console.log('child exit code(spawn)',code);});
但当它运行时。。。惊喜:
SHELL>节点WTF.js子退出代码(exec)35子退出代码(派生)0
我是不是错过了关于产卵的电话?
SHELL>节点——版本v6.0.0
从spawn()
的第二个参数中删除双引号,spawn()
将自动负责确保参数不会因空格等而意外分离:
cp.spawn('node', ['-e', 'process.exit(35);'])
.on('exit', function(code){
console.log('child exit code (spawn)', code);
});
否则,节点将传递的(js)代码视为"process.exit(35);"
(字符串文本),这基本上是一个无操作,因此它以代码0退出。
相关文章:
- 弹出窗口出现,然后退出
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 退出全屏不起作用
- 基于两个条件退出While循环
- 如何准确执行加载脚本&退出弹出窗口
- angularjs$valid-on-dates在firefox中报告错误
- firefox插件:退出不工作的应用程序观察器
- 无法执行文件.退出Acrobat PDF中的操作
- 如何从Node Webkit应用程序中退出外部CMD文件
- 使用c#中的邮件附件javascript在客户端机器上获取服务器端导出的crystal报告路径.下面的
- 如何将因果报应测试报告上传到声纳
- Backbone fetch中的Ajax在fetch调用退出后完成,因此fetch调用中没有成功/失败事件
- 如何在不退出javascript的情况下从javascript更新网页
- javascript在退出时打开窗口url
- PHP's退出;在Javascript中
- "未捕获的语法错误:意外的标记<"当尝试使用谷歌'核心报告API
- 在Meteor js中生成PDF报告
- 自定义HTML5视频控件-退出按钮不会启动全屏切换功能
- JSON:loop Invoice Items:如果InvoiceNo未退出则添加,如果退出则更新值,示例包括在内
- nodejs:child_process.spawn未报告退出代码