คำตอบโดย Xer0FyT น่าจะเป็นวิธีที่ง่ายที่สุดในการเริ่มโปรแกรมบน PI โดยอัตโนมัติ แต่ปัญหาเกิดขึ้นเมื่อโปรแกรมเริ่มทำงานล้มเหลวไม่ว่าด้วยเหตุผลใดเพราะจะไม่เริ่มต้นใหม่เนื่องจากไม่มีการตรวจสอบกระบวนการ ฉันเองจะแนะนำให้ใช้daemontoolsแทน มันค่อนข้างง่ายในการตั้งค่า (และรวมอยู่ใน Raspbian) โดยทั่วไปคุณสร้างไดเรกทอรีบริการที่มีrun
เชลล์สคริปต์ที่เริ่มต้นโปรแกรมของคุณ จากนั้น daemontools จะตรวจสอบให้แน่ใจว่าโปรแกรมของคุณเริ่มต้นและเริ่มการทำงานใหม่หากเกิดข้อผิดพลาดไม่ว่าด้วยเหตุผลใดก็ตาม
การตั้ง daemontools เป็นเรื่องง่าย เพียงแค่
apt-get install daemontools daemontools-run
จากนั้นสร้างไดเรกทอรีบริการของคุณที่มีสคริปต์เรียกใช้งานได้:
# create the service directory
mkdir -p /service/my-service
# create the run script
cat > /service/my-service/run <<EOF
#!/bin/sh
echo "I'm an example service executed by daemontools"
sleep 1
# Replace those 2 lines with a real call to your program like this:
# exec /my/program.py --arguments
EOF
# make it executable
chmod 755 /service/my-service/run
มีลักษณะที่และแก้ไขมันเพื่อให้มันเริ่มโปรแกรมของคุณเองแทนที่จะทำงาน/service/my-service/run
echo
เมื่อเสร็จแล้วให้เชื่อมโยงไดเรกทอรี/etc/service
นั้นเข้ากับdaemontools โดยอัตโนมัติ (ใหม่) เริ่มต้น:
cd /etc/service
ln -s /service/my-service .
หลังจากนั้นประมาณ 5 วินาทีโปรแกรมของคุณควรจะทำงาน คุณสามารถเริ่ม / หยุดโดยใช้
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
นอกจากนี้ยังเป็นไปได้ที่จะเข้าสู่ระบบ (ตัวอย่าง) syslog ดังนั้นผลลัพธ์ของโปรแกรมของคุณจะไม่สูญหาย ฉันเขียนโพสต์บล็อกที่สมบูรณ์มากขึ้นเกี่ยวกับเรื่องนี้ที่นี่: https://info-beamer.com/blog/running-info-beamer-in-production
sudo
ในrc.local
ตัวมันเอง มันรันด้วยสิทธิพิเศษรูทเมื่อบูต ตรวจสอบให้แน่ใจว่าได้ใส่ใจกับส่วนที่เกี่ยวกับการใช้งาน&
เว้นแต่ว่าโปรแกรมของคุณจะทำอะไรบางอย่างได้อย่างรวดเร็วแล้วออก