【问题标题】:Raspberry Pi (Raspbian Linux flavor) run script on wifi upRaspberry Pi(Raspbian Linux 风味)在 wifi 上运行脚本
【发布时间】:2017-04-26 04:58:05
【问题描述】:

目前我遇到了 wifi 适配器连接到网络后脚本自动运行的问题。

经过可笑的扩展研究,我多次尝试将脚本添加到 /etc/network/if-up.d/。手动我的脚本工作;但它不会自动发生。

用户权限:

 ls -al /etc/network/if-up.d/*
 -rwxr-xr-x 1 root root  703 Jul 25  2011 /etc/network/if-up.d/000resolvconf
 -rwxr-xr-x 1 root root  484 Apr 13  2015 /etc/network/if-up.d/avahi-daemon
 -rwxr-xr-x 1 root root 4958 Apr  6  2015 /etc/network/if-up.d/mountnfs
 -rwxr-xr-x 1 root root  945 Apr 14  2016 /etc/network/if-up.d/openssh-server
 -rwxr-xr-x 1 root root   48 Apr 26 03:21 /etc/network/if-up.d/sendemail
 -rwxr-xr-x 1 root root 1483 Jan  6  2013 /etc/network/if-up.d/upstart
 lrwxrwxrwx 1 root root   32 Sep 17  2016 /etc/network/if-up.d/wpasupplicant -> ../../wpa_supplicant/ifupdown.sh

另外,我尝试将命令直接推送到 /etc/network/interfaces 通过添加一行

post-up /home/pi/r/sendemail.sh

sendemail.sh的内容:

#!/bin/sh
python /home/pi/r/pip.py

重启后,实际上什么也没发生。我什至在前面尝试过 sudo

我认为 wpasupplicant 是导致这种情况的原因,但我无法了解如何在 /etc/wpa_supplicant 下的 ifupdown.sh 脚本中运行我的脚本。 p>

感谢您的帮助!

【问题讨论】:

    标签: python linux networking raspberry-pi sh


    【解决方案1】:

    如果在初始化 wifi 接口之前没有连接,我建议添加一个 bash 或 python 脚本的 cron 作业,每 X 分钟检查一次连接。

    Ping(主机);

    如果主机已启动,则运行 python 命令或外部命令。

    这有点模棱两可,但希望能有所帮助。

    这是一个检查主机是否存活的脚本示例;

    import re,commands
    
    
    class CheckAlive:
    def __init__(self):
            myCommand = commands.getstatusoutput('ping ' + 'google.com)
            searchString = r'ping: unknown host'
    
            match = re.search(searchString,str(myCommand))
    
            if match:
                # host is not alive
                print 'no alive, don't do stuff';
            else:
                # host is alive
                print 'alive, time do stuff';
    

    【讨论】:

    • 感谢麦迪逊!建议的方法可能会以某种方式有所帮助(例如,目前,我在“/etc/profile”中添加了一个脚本,它在登录后只运行一次),但问题是:cron 作业应该单独管理,否则脚本将连续运行(这不是目标本身)。主要目的是在 wlan0 启动并且通过 DHCP 获得 ip 时运行它。
    • 好的,我明白你的意思了,我认为你在正确的轨道上,在 /etc/network/interfaces 尝试添加; auto eth0 iface eth0 inet dhcp post-up /usr/local/sbin/my-custom-script 但是用你的实际界面和脚本替换。
    • 是的,这就是我最初所做的,但没有任何效果。我认为 wpasupplicant 窃取了线程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多