我正在尝试使用此代码获取带有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中缓存。
如何强制重新扫描或禁用缓存?
答案 0 :(得分:1)
我找到了导致我问题的原因。来自man iwlist
:
触发扫描是一种特权操作(仅限root用户),普通用户只能读取剩余的扫描结果。
我正在运行node.js作为受限用户并使用root从shell进行扫描。