2017-04-26 172 views
0

目前我遇到了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。

感謝您的幫助!

回答

0

如果你在初始化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竊取線程。 –