首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当没有人看WiFi模块时,它就会中断。(或: Schrodingers WiFi)

当没有人看WiFi模块时,它就会中断。(或: Schrodingers WiFi)
EN

Stack Overflow用户
提问于 2017-11-02 10:52:23
回答 1查看 64关注 0票数 1

我来找你们有个奇怪的问题。

对于我们的项目,我们在Raspberry Pi3上使用Pi3(运行Raspbian)。我们使用以下库构建一个wifi模块:WifiControl。为了监视Raspberry上应用程序的日志,我们使用pm2。为了输入Pi需要连接的SSID和密码,我们有一个小小的GUI界面,允许用户将这些细节发送到Pi。

情况如下:

  • 当用户输入他们的SSID和密码时
  • 它被发送到Pi3
  • pi3使用库尝试连接到提供的AP。
  • pi通知GUI连接尝试的状态(成功/失败)

如果我们在连接尝试期间使用pm2监视Pi的日志(我们将ssh放入Pi中,然后使用pm2日志),这是很好的。当我们这样使用时,Pi总是连接到wifi (假设凭证输入是正确的)。

现在,如果我们重复上述完全相同的步骤,但这次我们没有ssh进入Pi并跟踪正在发生的事情,Pi永远无法连接。是什么原因导致了这种"schrodingers wifi",在这种情况下,观察连接尝试意味着它的工作,而不观察它意味着它不工作?下面我在两次不同的连接尝试中添加了来自pm2的日志。前缀为“WifiControl”的行是库的调试输出。

在观察连接尝试期间的输出:

代码语言:javascript
复制
1|OCB-RN3K | 2017-11-02 10:46 +00:00: [2017-11-02T10:46:05.709Z] [WIFI]: Trying to connect to: { ssid: 'ssid', password: 'password' }
1|OCB-RN3K | 2017-11-02 10:46 +00:00: WiFiControl: It appears there is already a connection for this SSID.
1|OCB-RN3K | 2017-11-02 10:46 +00:00: WiFiControl: Executing:   nmcli connection delete "ssid"
1|OCB-RN3K | 2017-11-02 10:46 +00:00: WiFiControl: Success!
1|OCB-RN3K | 2017-11-02 10:46 +00:00: WiFiControl: Executing:   nmcli device wifi connect "ssid" password "password"
1|OCB-RN3K | 2017-11-02 10:46 +00:00: WiFiControl: Success!
1|OCB-RN3K | 2017-11-02 10:46 +00:00: WiFiControl: WiFi connection request to "ssid" has been processed.
1|OCB-RN3K | 2017-11-02 10:46 +00:00: WiFiControl: Successfully connected to "ssid"
1|OCB-RN3K | 2017-11-02 10:46 +00:00: [2017-11-02T10:46:09.681Z] [WIFI]: Successfully connected to: Onmi Airspace
1|OCB-RN3K | [2017-11-02T10:46:09.682Z] [CONTROLS]: WiFi Connected!

未观察到连接尝试后的输出:

代码语言:javascript
复制
[WIFI]: Trying to connect to: { ssid: 'ssid', password: 'password' }
1|OCB-RN3K | 2017-11-02 10:48 +00:00: WiFiControl: Executing:   nmcli device wifi connect "ssid" password "password"
1|OCB-RN3K | 2017-11-02 10:48 +00:00: WiFiControl: WiFi connection request to "ssid" has been processed.
1|OCB-RN3K | 2017-11-02 10:48 +00:00: [2017-11-02T10:48:56.737Z] [WIFI]: Error during connection attempt [1/3]: { ssid: 'ssid',
1|OCB-RN3K |   success: false,
1|OCB-RN3K |   msg: 'Error: Could not connect to ssid' }

这已经经受了多次考验,我们相信这不是巧合。

EN

回答 1

Stack Overflow用户

发布于 2017-11-03 15:23:37

此问题似乎与pm2日志无关,但与Raspberry上的一些权限缺失有关。这意味着当我们将ssh放入Pi中时,我们将登录并触发对此用户的正确权限,允许nmcli运行(即使程序在启动时作为我们在ssh期间使用的相同用户登录)。

编辑:毕竟,以下内容不起作用:

这个问题通过授予运行程序的用户sudo特权得到了解决,我们现在正在研究关于权限的其他选项(因为sudo有点过于热情)。我把这个问题留待进一步参考,因为这是一个很难缩小范围的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47073493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档