Python для Raspberry Pi при запуске

Я пытаюсь запустить свой скрипт Python в фоновом режиме при загрузке. Это использовалось для меня все время, когда я хотел запустить свой код, но теперь он, похоже, не работает. Я думаю, что я запускаю NOOBS.

sudo nano /etc/rc.local

#!/bin/sh -e

sudo python /home/pi/Firebase.py &


exit 0

Firebase.py

from firebase import firebase
import RPi.GPIO as GPIO
import time

firebase = firebase.FirebaseApplication('https://raspberrypi-5c0ce.firebaseio.com/', authentication = None)


#result = firebase.put('/light_switch','state', 'off')

#currentState = firebase.get('/light_switch', 'state')
#print(currentState)



#Initialize gpio settings
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

#Initialize gpio board
input1 = 26
input2 = 19


#setup led color with gpio setup
GPIO.setup(input1, GPIO.OUT)
GPIO.setup(input2, GPIO.OUT)
#GPIO.setup(yellowLed, GPIO.OUT)

#output actual color of led based on variableColor and 1 for tru
while True:
    currentState = firebase.get('/light_switch', 'state')
#print(currentState)
    if currentState == "on":
        GPIO.output(input1, 1)
        GPIO.output(input2, 1)
    #print("on")
    else:
        GPIO.output(input1, 0)
        GPIO.output(input1, 0)
    #print("off")

person codechicksrock    schedule 21.03.2017    source источник
comment
Кстати, NOOBS — это не ОС. Это Расбиан. Но неясно, что здесь содержит Firebase.py (или зачем ему sudo), так что трудно помочь   -  person OneCricketeer    schedule 21.03.2017
comment
Хорошо, я добавил код, но все работает отлично, когда я запускаю код по умолчанию, я просто могу заставить его работать в rc.local при загрузке.   -  person codechicksrock    schedule 21.03.2017
comment
По названию вашего приложения я заметил, что вы работаете с FireBase, этот сервис требует доступа к интернету, но доступ может быть задержан, поэтому, вероятно, есть исключение, и если вы не правильно обработаете, ваша программа запустится, но будет закрыта этим исключением.   -  person eyllanesc    schedule 21.03.2017
comment
Выполняется ли код за пределами rc.local?   -  person OneCricketeer    schedule 21.03.2017
comment
да, код отлично работает вне rc.local   -  person codechicksrock    schedule 21.03.2017
comment
Я написал приложение на Swift, которое отлично взаимодействует с моим пи, когда программа работает за пределами rc.local. Но это не работает ВНУТРИ rc.local   -  person codechicksrock    schedule 21.03.2017
comment
Я очень удивлен, что никто не ответил   -  person codechicksrock    schedule 22.03.2017


Ответы (1)


Исправлена ​​​​проблема, необходимая для сна, чтобы он мог подключиться к Wi-Fi.

#!/bin/sh -e
# Print the IP address
# Sleep introduced to see if Wifi acquired and IP assigned
date >> /tmp/rc_local_b4_sleep
sleep 15
date >> /tmp/rc_local_after_sleep

_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

/sbin/ifconfig > /tmp/network_at_boot

python /home/pi/Firebase.py &


exit 0
person codechicksrock    schedule 21.03.2017