node.js中的process.exec()

这里是我写的代码,当我执行代码,terminal没有输出任何东西,程序被阻止

var util=require('util') var exec=require('child_process').exec; exec('iostat 5',function(err,stdout,stderr){ util.puts("hello") util.puts(stdout) }) 

如果我像这样更改exec命令:它将工作并输出文件列表

 var util=require('util') var exec=require('child_process').exec; exec('ls -al',function(err,stdout,stderr){ util.puts("hello") util.puts(stdout) }) 

block命令(iostat)和nonbolck命令(ls)之间有什么不同?

iostat 5每5秒永远循环,永不终止,所以你的执行callback将永远不会被调用。 相反,你可以通过setInterval调用来调用iostat ,或者只需要删除5就可以了。