это мой первый пост в stackoverflow, поэтому, пожалуйста, потерпите меня:)
Я пытаюсь прочитать вывод iwconfig из скрипта Python, чтобы определить, есть ли соединение Wi-Fi. Когда я запускаю скрипт (через скрипт bash, который сначала устанавливает каталог) с помощью crontab @reboot (пользователь, а не root), subprocess.check_output(['iwconfig'])
всегда выдает [Errno 2]. Это даже верно, когда я улавливаю ошибку, используя попытку / исключение и зацикливая код, поэтому он все еще работает, когда Wi-Fi, безусловно, подключен (как я могу проверить, запустив iwconfig вручную). Когда я запускаю скрипт python из командной строки через тот же скрипт bash, он работает нормально. Что я пропускаю?
#!/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)