Запуск сценарію Python при завантаженні з використанням Cron
Рейтинг статті: / 11
НайгіршеНайкраще 
PythonМожливо, бувають випадки, коли хочете запустити скрипт на Python, при завантаженні Raspberry Pi. Є багато різних методів, щоб зробити це, але автор віддає перевагу використанню "cron".
Cron - планувальник завдань, який дозволяє системі виконувати завдання в певний час або інтервали часу. Це дуже потужний і корисним у багатьох ситуаціях інструмент. Ви можете використовувати його для запуску команд або в даному випадку, сценарію на Python.
Крок 1 - Створення сценарію на Python
Першим кроком є створення вашого сценарію Python. Це буде сценарій, який працюватиме під час завантаження. Важливо запам'ятати його ім'я і розташування. У цьому прикладі будемо вважати, що сценарій називається "MyScript.py", і він знаходиться в “/home/pi/”.
Зробіть подвійну перевірку, щоб переконатися, що знаєте правильний шлях, набравши:
cat /home/pi/MyScript.py
Ви повинні побачити вміст свого скрипта.
Переконайтеся, що ваш скрипт працює і робить те, що очікуєте. Після того, як він працюватиме при завантаженні буде не так легко його налагоджувати, так що не поспішайте!
Крок 2 - Додавання нового завдання
Щоб створити нову роботу для Cron ми доопрацюємо “crontab”. Це таблиця, яка містить список завдань, які Cron буде контролювати і запускати відповідно до їх параметрів. Щоб змінити її використовуємо команду:
sudo crontab -e
Кожен користувач системи (тобто "pi") може мати свій власний Crontab, але в даному випадку ми хочемо додати від адміністратора, тому взяли префіксом до нашого “crontab -e” команду "sudo". Ви повинні побачити щось на зразок цього:
Python_Start_Raspberry Pi
Використовуючи клавіші пересування курсором перейдіть вниз і додайте наступний рядок:
@reboot python /home/pi/MyScript.py &
Це говорить Cron, що при кожному завантаженні (перезавантаженні або запуску) ми хочемо запустити Python з скриптом MyScript.py. "&" наприкінці рядка означає, що команда виконується у фоновому режимі, і це не зупинить завантаження системи, як і раніше.
Ваш екран повинен виглядати приблизно так:
Python_Start_Cron
Щоб зберегти зроблені зміни натисніть "Ctrl-X", потім "Y" і, нарешті, "Return". Тепер ви повинні повернутися в командний рядок.
Для початку тестування можете тепер перезавантажитись за допомогою:
sudo reboot
Після установки ваш сценарій Python буде працювати, коли ви перезавантажуєтеся або запускаєте свій Pi. Можуть бути випадки, коли при перезавантаженні скрипт не хоче працювати. Щоб зупинити його, можете знайти номер його процесу і "вбити" його. Для цього введіть:
ps aux | grep /home/pi/MyScript.py
Це повинно дати вам рядок, який починається з "root" і закінчуються шляхом до вашого сценарію. Відразу ж після "root" повинен бути номер процесу. Наприклад:
root  1863  0.0  1.0  24908  4012 ?  Sl  19:45  0:00  python  /home/pi/MyScript.py
У цьому випадку ми можемо зупинити процес за допомогою:
sudo kill 1863
Заключні думки
Якщо відчуваєте себе відчайдушним, то можете написати свій сценарій Python, щоб автоматично вийти, якщо виконується деяка умова, так щоб вам не треба було постійно його "вбивати". Ідеї включають в себе:
  • Перевірити контакти GPIO і зупинити, якщо натиснутий перемикач. Можуть бути два перемикачі, які утримуються натиснутими.
  • Перевірити, що підключення до мережі доступні і зупинити, якщо воно є. Це може означати, що ви тестуєте (камеру, наприклад), і хочете сценарій тільки для автоматичного запуску при відсутності мережевого з’єднання.
  • Перевірити наявність конкретного файлу. Це дозволить вам створити вказаний файл, щоб запобігти запуску сценарію при наступному завантаженні.
Є й інші методи, щоб запускати скрипти при завантаженні, і ви, можливо, захочете “rc.local” від Google або "init.d". Автор віддає перевагу методу Cron, тому що це так просто.
(Джерело EN: raspberrypi-spy.co.uk)
 
>
КнигаНовиниПрактика пошукуПартнериПро нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting