iwconfig不适用于用crontab@reboot启动的进程



这是我在stackoverflow的第一篇帖子,所以请耐心等待:(

我试图从python脚本中读取iwconfig的输出,以确定是否有wifi连接。当我使用crontab@reboot(用户,而不是root(运行脚本(通过首先设置目录的bash脚本(时,subprocess.check_output(['iwconfig'])总是抛出[Erno 2]。当我使用try/except发现错误并循环代码时,情况也是如此,因此当Wifi确实连接时,它仍然在运行(因为我可以手动运行iwconfig进行检查(。当我通过相同的bash脚本从命令行运行python脚本时,它运行得很好。我在俯瞰什么?

#!/usr/bin/python3
import subprocess
import time
import logging
logging.basicConfig(filename='wifi_check.log', filemode='w', format='%(name)s - %(levelname)s 
- %(message)s', level=logging.DEBUG)
logging.info("Checking for Wifi")
for i in range(20):
try:
iwconfig_output = subprocess.check_output(['iwconfig']).decode('utf-8')
except Exception as err:
logging.error(str(i) + str(err))
else:
logging.debug(str(i) + iwconfig_output)
if "ESSID" in iwconfig_output:
logging.info(str(i) + "Wifi active")
time.sleep(10)

Errno 2可以指示未找到该文件。对于执行脚本的用户来说,iwconfig可能不在PATH中。尝试使用可执行文件的/sbin/iwconfig(完整路径(来排除这种情况。

最新更新