iwconfig недоступен для процессов, запущенных с помощью crontab @reboot?
Это мой первый пост в stackru, поэтому, пожалуйста, потерпите меня:)
Я пытаюсь прочитать вывод 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)
1 ответ
Errno 2
Можно указать, что файл не найден. возможно iwconfig
не находится в PATH для пользователя, который выполняет сценарий. Попробуйте использовать /sbin/iwconfig
(полный путь) исполняемого файла, чтобы исключить это.