gpt4 book ai didi

python - iwconfig 对于使用 crontab @reboot 启动的进程不可用?

转载 作者:行者123 更新时间:2023-12-01 08:47:19 25 4
gpt4 key购买 nike

这是我在 stackoverflow 上发表的第一篇文章,所以请耐心等待:)

我正在尝试从 python 脚本读取 iwconfig 的输出来确定是否有 wifi 连接。当我使用 crontab @reboot (用户,而不是 root)运行脚本(通过首先设置目录的 bash 脚本)时,subprocess.check_output(['iwconfig']) 总是抛出 [Errno 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 (完整路径)来排除这种情况。

关于python - iwconfig 对于使用 crontab @reboot 启动的进程不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53250930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com