使用Python重新启动Raspberry Pi Wifi

2024-09-26 22:09:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python脚本,它可以自动检查互联网连接,如果互联网出现故障,它应该重新启动wifi连接。在

这是执行此操作的函数:

def RestartWifi():
  print 'Restarting Wifi.'
  os.system('sudo ifdown --force wlan0')
  time.sleep(6)
  os.system('sudo ifup wlan0')

我添加了sleep命令,以确保在重新启用连接之前有足够的时间禁用。在

然而,有没有一种方法可以加快这一速度,并在wifi被禁用后立即启用它?另外,如果第一个命令花费的时间超过6秒,会发生什么? 有没有一种方法可以像函数一样等待命令在完成后“返回”?在

非常感谢你的帮助!在


Tags: 方法函数命令脚本osdef时间sudo
2条回答

为了回答我自己的问题,I found out操作系统()用进程返回代码响应。这表明函数只在被调用的子进程完成后返回。在

因此,我试图解决的问题,似乎根本不是问题,我应该能够消除睡眠时间。在

然而,有一个(非常)短的延迟是有意义的,就像一个预防措施和“让事情解决”,可以这么说。在大多数情况下,这一秒无论如何都不是问题。在

def RestartWifi():
  os.system('sudo ifdown  force wlan0')
  time.sleep(1)
  os.system('sudo ifup wlan0')

您可以这样做的一种方法是在syscall完成之前阻塞它。这样你就不必再等了。一种方法确保调用块与

subprocess.check_output()

命令。在

相关问题 更多 >

    热门问题