这是我写的代码,当我执行代码时,终端没有输出任何东西,程序被阻塞了
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)和非 block 命令(ls)之间有什么区别吗?
最佳答案
iostat 5
每 5 秒永远循环一次并且永远不会终止,因此永远不会调用您的 exec 回调。相反,您可以从 setInterval
调用中调用 iostat
,或者如果您只需要一次,则只需删除 5
。
关于javascript - node.js 中的 process.exec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061678/