>

시작할 때 파이썬 파일을 시작할 수 없습니다. 4 가지 방법 (아래)을 시도했지만 모두 명령 행에서 작동하지만 시작시 실행되는 것으로 보이지 않습니다.

예를 들어 파일은 ~/gpio_soundtest.py 입니다.  작동합니다

#!/usr/bin/python3
import RPi.GPIO as GPIO
from time import sleep
import pygame
#init sounds
pygame.mixer.pre_init(44100, 16, 2, 4096)
pygame.init()
pygame.mixer.init()
WAV = pygame.mixer.Sound("Music/4AM.wav")
WAV.play()
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while 1:
    if GPIO.input(17) == 0:
         WAV.stop()

나는 또한 그것을 실행하기 위해 sh 파일을 만들었고 sudo chmod +x file/name . 테스트되었으며 다음과 같이 작동합니다.

#!/bin/sh
cd /
cd home/pi/
python3 gpio_soundtest.py
cd /

내가 시도한 첫 번째 방법은 sudo crontab -e

....more text up here
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
# the line below did not work though it did create an empty log (no help)
@reboot sh /home/pi/gpio_test_launcher.sh >/home/pi/Logs/cronlog 2>&1
# the line below was a test line.  it didn't work either
@reboot echo "$(date)" >> ~/boot.txt

다음에 시도한 것은 sudo nano /etc/xdg/lxsession/LXDE-pi/autostart . 부팅 할 때 아무 일도 일어나지 않았습니다.

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
#neither worked
@/usr/bin/python /home/pi/gpio_soundtest.py
@/usr/bin/python3 /home/pi/gpio_soundtest.py

다음 방법은 sudo nano /etc/rc.local 였습니다. :

.....
# By default this script does nothing.
#I tried running it sh style, did nothing on start up
/home/pi/gpio_test_launcher.sh &
#I tried running it normally, nothing happens on start up
python3 /home/pi/gpio_soundtest.py &

/etc/rc.local 를 실행하면  제대로 작동하지만 시작시 실행되지 않는 것 같습니까?

마지막으로 시도한 것은 여기에 표시된 와 같이 daemontools를 설치하는 것입니다. 또한 /service/gpio-test-service/run 와 마찬가지로 잘 돌아갔습니다.  하지만 시작할 때는 아무 것도하지 않습니다.

여기서 내가 뭘 잘못하고 있니? 내가 넣은 모든 것은 커맨드 라인에서 훌륭하게 작동하지만 파이를 뽑았다가 다시 꽂아도 아무런 반응이 없습니다.이 중 아무것도 작동하지 않으면 어떻게 시작할 때 파이썬 스크립트를 실행합니까?

P.S. Wi-Fi를 통해 Pi3 및 SSHing을 사용하고 있습니다

  • 답변 # 1

    crontab 예제에서 분명히 잘못된 것을 볼 수 없습니다. 나는 다른 사람들을 보지 않았습니다.

    최소한의 예제로 작업을 시작하는 것이 좋습니다.

    다음 예는 저에게 효과적입니다.

    크론 탭

    @ 재부팅 (수면 10;/home/pi/su.py)

    su.py
    #!/usr/bin/env python
    import time
    with open("/tmp/mylog", "a") as f:
       f.write("Hello, I am running at " + time.asctime() + "\n")
       f.close()
    
    

    기타

    su.py는 다음으로 실행 가능합니다

    chmod + x su.py

    $ cat /tmp/mylog
    Hello, I am running at Wed May 18 07:47:48 2016
    
    

  • 답변 # 2

    많은 일을 한 후에 문제가 오디오 카드와 sudo에 있다는 것을 알았습니다. 어떤 이유로 든 sudo에서 실행되는 명령은 오디오를 출력하지 않으므로 솔루션에서 sudo -u pi python3 gpio_soundtest.py 를 사용하게되었습니다.  사용자 pi -u pi 에서 명령을 실행하기 위해 .

    이 스위치를 사용하면 모든 방법이 훌륭하게 작동합니다.

    모든 방법 중에서 deamontools를 사용하는 것이 가장 좋습니다. 실패하면 프로그램을 다시 시작하기 때문입니다.

    sudo crontab -e  또한 좋은 선택이지만, 그것과 crontab -e 사이에는 차이가 있습니다  sudo없이. 제 경우에는 sudo 하나만 실행되었습니다.

    sudo nano 1/etc/rc.local 를 다시 테스트하지 않았습니다 하지만 조금 불안해 보입니다.

    sudo nano /etc/xdg/lxsession/LXDE-pi/autostart  아마도 내가 가장 신뢰하는 것입니다. 데스크톱을 실행하지 않으면 제대로 작동하지 않습니다.

    어쨌든, 이것이 누군가를 돕기를 바랍니다.

관련 자료

  • 이전 Rasberry Pi3 - 모바일 핫스팟의 UV4L
  • 다음 '첨자'의 모호한 사용