Xer0FyT का जवाब शायद PI पर प्रोग्राम शुरू करने का सबसे सरल तरीका है। लेकिन समस्या तब होती है जब प्रोग्राम शुरू होने के बाद किसी भी कारण से क्रैश हो जाता है क्योंकि यह फिर से शुरू नहीं होगा, क्योंकि कोई प्रक्रिया निगरानी नहीं है। मैं व्यक्तिगत रूप से इसके बजाय डेमोंटोसल्स का उपयोग करने की सलाह दूंगा । यह सेटअप करने के लिए बहुत सरल है (और रास्पियन में शामिल है)। मूल रूप से आप एक सेवा निर्देशिका बनाते हैं जिसमें एक run
शेल स्क्रिप्ट होती है जो आपका प्रोग्राम शुरू करती है। डेमोंटोल्स तब यह सुनिश्चित करेंगे कि आपका कार्यक्रम शुरू हो गया है और फिर से शुरू हो जाना चाहिए कि यह किसी भी कारण से दुर्घटनाग्रस्त हो जाए।
डेमोंटोल्स को स्थापित करना बहुत सरल है। केवल
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
तो उस निर्देशिका को स्वचालित रूप से (फिर से) शुरू करने वाले सिम्क्लिन इसे शुरू करते हैं:
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
ही। इसे बूट पर रूट विशेषाधिकारों के साथ चलाया जाता है। उपयोग करने के बारे में उस हिस्से पर ध्यान देना सुनिश्चित करें&
जब तक कि आपका कार्यक्रम बस जल्दी से कुछ नहीं करता है।