2017-04-26 2 views
0

현재 wifi 어댑터를 네트워크에 연결 한 후 자동으로 실행되는 스크립트에 문제가 있습니다.Wifi에서 Raspberry Pi (Raspbian Linux flavor) 스크립트 실행

엄청난 연구 끝에 나는 /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/network/interfaces 파일을 에 직접 명령을 밀어 시도했다 :

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

재부팅 후 실제로 아무 일도 일어나지 않습니다. 나는 심지어 내가 wpasupplicant 그 원인 일 것으로 가정 전면

sudo는을 시도했습니다,하지만 난을/etc/wpa_supplicant를 아래 ifupdown.sh 스크립트 내 스크립트를 실행하는 방법을 얻을 수 없습니다.

감사합니다.

답변

0

wifi 인터페이스를 초기화하기 전에 연결할 수 없다면 매 x 분마다 연결을 확인하는 bash 또는 python 스크립트의 cron 작업을 추가하는 것이 좋습니다.

핑 (호스트);

호스트가 작동중인 경우 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

감사합니다. Madison! 제안 된 접근 방식은 특정 방식으로 도움이 될 수 있습니다 (예를 들어, 현재 '/ etc/profile'에 스크립트를 추가 했으므로 로그인 후에 한 번만 실행됩니다.)하지만, cron 작업은 별도로 관리해야합니다. 스크립트는 계속 실행됩니다 (목표 자체가 아닙니다). 주된 목적은 wlan0이 가동되고 ip가 DHCP를 통해 얻어지는 경우 실행하는 것입니다. –

+0

알겠습니다. 요점을 보았습니다. 올바른 길에 있다고 생각합니다./etc/network/interfaces에있는 을 추가하려고합니다. 'auto eth0 iface eth0 inet dhcp post-up/usr/local/sbin/my-custom-script' 실제 인터페이스와 스크립트로 바꾸십시오. –

+0

그래, 그게 내가 원래했던 짓이야. 나는 wpasupplicant가 스레드를 훔친다 고 생각한다. –