iwconfig 对以 crontab @reboot 启动的进程不可用?
iwconfig unavailable to processes started with crontab @reboot?
这是我第一次 post Whosebug,所以请多多包涵 :)
我正在尝试从 python 脚本读取 iwconfig 的输出以确定是否有 wifi 连接。当我使用 crontab @reboot(用户,而不是 root)运行 脚本(通过首先设置目录的 bash 脚本)时,subprocess.check_output(['iwconfig'])
总是抛出 [Errno 2]。当我使用 try/except 捕获错误并循环代码时甚至是这样,所以当 Wifi 确实连接时它仍然是 运行ning(因为我可以手动检查 运行ning 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
(完整路径)来排除这种情况。
这是我第一次 post Whosebug,所以请多多包涵 :)
我正在尝试从 python 脚本读取 iwconfig 的输出以确定是否有 wifi 连接。当我使用 crontab @reboot(用户,而不是 root)运行 脚本(通过首先设置目录的 bash 脚本)时,subprocess.check_output(['iwconfig'])
总是抛出 [Errno 2]。当我使用 try/except 捕获错误并循环代码时甚至是这样,所以当 Wifi 确实连接时它仍然是 运行ning(因为我可以手动检查 运行ning 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
(完整路径)来排除这种情况。