Câu trả lời của Xer0FyT có lẽ là cách đơn giản nhất để tự động bắt đầu một chương trình trên PI. Nhưng vấn đề xảy ra khi chương trình bắt đầu gặp sự cố vì bất kỳ lý do gì vì nó sẽ không được khởi động lại, vì không có giám sát quá trình. Cá nhân tôi khuyên bạn nên sử dụng daemontools thay thế. Việc cài đặt khá đơn giản (và được bao gồm trong Raspbian). Về cơ bản, bạn tạo một thư mục dịch vụ chứa run
tập lệnh shell khởi động chương trình của bạn. daemontools sau đó sẽ đảm bảo rằng chương trình của bạn được khởi động và khởi động lại nếu nó bị sập vì bất kỳ lý do gì.
Thiết lập daemontools khá đơn giản. Chỉ
apt-get install daemontools daemontools-run
Sau đó tạo thư mục dịch vụ của bạn chứa tập lệnh chạy thực thi:
# 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
Hãy xem /service/my-service/run
và chỉnh sửa nó, để nó bắt đầu chương trình của riêng bạn thay vì chạy echo
. Khi đã xong, symlink thư mục đó vào /etc/service
để daemontools tự động (re) khởi động nó:
cd /etc/service
ln -s /service/my-service .
Sau khoảng 5 giây, chương trình của bạn sẽ chạy. Bạn có thể bắt đầu / dừng nó bằng cách sử dụng
# stop it
$ svc -d /service/my-service
# start it
$ svc -u /service/my-service
Cũng có thể đăng nhập vào (ví dụ) syslog. Vì vậy, đầu ra của chương trình của bạn không bị mất. Tôi đã viết một bài đăng blog đầy đủ hơn về điều này ở đây: https://info-beamer.com/blog/rasty-info-beamer-in-production
sudo
trongrc.local
chính nó. Nó được chạy với quyền root khi khởi động. Hãy chắc chắn chú ý đến phần về việc sử dụng&
trừ khi chương trình của bạn chỉ cần thực hiện một cái gì đó nhanh chóng sau đó thoát ra.