Є багато причин, за якими ви хочете запускати сценарій Python, програму або інший тип сценарію (наприклад, сценарій Bash) щоразу, коли ваш Raspberry Pi завантажується. Можливо, у вас є робот або пристрій IoT, який має бути готовим до виконання завдання, як тільки Raspberry Pi, який його живить, запуститься. Або, можливо, ви просто хочете, щоб певна програма постійно працювала у фоновому режимі, і вам не потрібно запускати її вручну під час кожного сеансу.
Існує кілька способів автоматичного запуску сценарію під час завантаження Raspberry Pi, але найпростішим є використання crontab, функції планування, яка також дозволяє налаштувати запуск сценаріїв у певний час.
Як запустити скрипт на Raspberry Pi Boot
1. Відредагуйте свій список crontab, ввівши:
Ви можете запустити crontab, не вводячи sudo, але якщо ви це зробите, ви не зможете запускати сценарії, для яких потрібні права адміністратора. Насправді, ви отримаєте інший список crontab, якщо ви не використовуєте sudo, тому не забувайте продовжувати його використовувати або не використовувати.
2. Виберіть nano, якщо вам буде запропоновано запитати редактор.
Відкриється файл.
3. Додайте рядок у кінці файлу, який має такий вигляд:
Рядок має починатися з @reboot, який вказує йому запускатися щоразу, коли ви завантажуєте Raspberry Pi. Якщо це сценарій Python, вам потрібно ввести команду для запуску інтерпретатора python або python3, а потім повний шлях до вашого сценарію Python.
Якщо це сценарій Bash або інша програма, просто введіть повний шлях до нього.
4. Збережіть і вийдіть. У nano це можна зробити, натиснувши CTRL + X, відповівши Y і натиснувши Enter, коли з’явиться запит.
5. Зробіть свій сценарій виконуваним, якщо це сценарій Bash. Скрипти Python не повинні бути виконуваними, оскільки інтерпретатор Python вже є. Ви можете зробити будь-який скрипт виконуваним, ввівши
Якщо ви хочете видалити свій сценарій з crontab, просто введіть sudo crontab -e ще раз і видаліть або прокоментуйте цей рядок. Зверніть увагу, що якщо ви створюєте проект, який не вимагає використання віконного середовища, ви можете заощадити системні ресурси, налаштувавши Raspberry Pi на завантаження з командного рядка, ввівши sudo raspi-config, а потім перейшовши до Параметри завантаження – > Робочий стіл / CLI та виберіть Автовхід консолі.
Як автоматично запустити сценарій або додаток у графічному інтерфейсі Raspberry Pi
Якщо ви хочете, щоб ваш сценарій або програма запускалися під час запуску Raspberry Pi у віконному графічному інтерфейсі, виконайте ці дії.
1. Створіть файл під назвою myapp.desktop (або щось інше .desktop) у каталозі /etc/xdg/autostart/.
2. Використовуйте такий макет у файлі myapp.desktop.
Помістіть команду та будь-які параметри в рядок Exec=. Наприклад, щоб веб-переглядач Chrome відкривав веб-сторінку, потрібно вказати «chromium-browser [URL]». Якщо вашій програмі потрібні дозволи sudo, ви можете додати sudo в команду Exec.
Щоб запустити сценарій у вікні терміналу, використовуйте lxterminal, а потім параметр –command і подвійні лапки з «/bin/bash -c ‘MYCOMMANDS HERE; /bin/bash”’. Наприклад, щоб запустити сценарій python3, який вимагає дозволів sudo, ви повинні використовувати:
Це запустить вікно терміналу у віконному середовищі під час завантаження з запущеним у ньому сценарієм. Коли сценарій закінчиться (або ви його перервете, натиснувши CTRL+C), вікно терміналу повернеться до підказки. Якщо ви хочете, щоб вікно терміналу закрилося самостійно після завершення сценарію, ви можете пропустити ;/bin/bash в кінці.
Запуск сценарію у вікні терміналу, як це, може бути корисним, тому що якщо це сценарій Python у нескінченному циклі (наприклад, для робота), ви можете легко вбити сценарій, натиснувши CTRL+C. В іншому випадку, щоб знищити сценарій, вам потрібно буде знайти процес, який ми описуємо нижче.
Вбивство сценарію
Що робити, якщо ви хочете зупинити сценарій автоматичного запуску після завантаження Raspberry Pi? Якщо ваш сценарій вже завершив роботу, він зникне з пам’яті, але якщо він призначений для постійної роботи, вам потрібно буде шукати та припинити виконання завдання.
1. Знайдіть свій сценарій за допомогою команди ps aux і вставте назву свого сценарію (або принаймні часткову назву) після grep.
Замініть app.py ім’ям вашого сценарію. Ви побачите список номерів процесів.
2. Виключіть кожен номер процесу за допомогою команди sudo kill -9. Наприклад,
Більше навчальних посібників:
Як зробити знімки екрана на Raspberry Pi
Як налаштувати веб-сервер Raspberry Pi
Як запустити Raspberry Pi 4 або 3 без SSD або флеш-накопичувача
Як створити власні комбінації клавіш на Raspberry Pi
Як запустити емулятори на Raspberry Pi 4
25+ команд Linux, які потрібно знати користувачам Raspberry Pi
Як зробити сорочку News Ticker за допомогою Raspberry Pi