如何防止node.js exec缓存结果?

时间:2014-12-15 17:50:04

标签: node.js shell exec

我正在尝试使用此代码获取带有node.js exec的WiFi网络列表:

exec('iwlist ra0 scan | grep ESSID', function(err, out, code) {
    console.log(out);
});

它可以正确地打印所有找到的ESSID。但是,当我重命名我的路由器的ESSID时,无论我等待多久或运行代码多少次,我仍然会得到旧的ESSID。如果我从linux shell运行相同的命令iwlist ra0 scan | grep ESSID,我将获得新的ESSID,并且它还会在node.js exec结果中更新。看起来结果会在node.js exec中缓存。 如何强制重新扫描或禁用缓存?

1 个答案:

答案 0 :(得分:1)

我找到了导致我问题的原因。来自man iwlist

  

触发扫描是一种特权操作(仅限root用户),普通用户只能读取剩余的扫描结果。

我正在运行node.js作为受限用户并使用root从shell进行扫描。