Raspberry Pi(Raspbian Linux flavor)在wifi上运行脚本

问题描述:

目前我遇到了WiFi适配器连接到网络后脚本自动运行的问题。Raspberry Pi(Raspbian Linux flavor)在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 

另外,我已经尝试通过添加行sendemail.sh的

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

目录直接在/ etc /网络/接口 推命令

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

重启后,没有发生任何事情。我甚至试过须藤

我认为wpasupplicant的是导致该事情,但我不能让如何运行我的脚本在ifupdown.sh脚本在/ etc /的wpa_supplicant。

感谢您的帮助!

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

Ping(host);

如果主机启动,则运行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'; 
+0

谢谢麦迪逊!建议的方法可能会以某种方式提供帮助(例如,目前,我在'/ etc/profile'中添加了一个脚本,它在登录后只运行一次),但事情是:cron作业应该单独管理,否则,脚本将持续运行(这不是目标本身)。主要目的是在wlan0启动并且通过DHCP获取IP时运行它。 –

+0

好的,我看你的意思,我想你是在正确的轨道上, 在/ etc/network/interfaces下试试加入; '汽车eth0的 IFACE eth0的INET DHCP 起来后在/ usr/local/sbin中/我 - 定制script' 但随着您的实际界面和脚本取代。 –

+0

是的,这就是我原来所做的,但没有效果。我认为wpasupplicant窃取线程。 –