orange pi автозапуск скрипта
Orange pi автозапуск скрипта
Re: скрипт python в автозапуск
Все работает, но хотелось бы чтобы этот скрипт запускался сам при включении распберри пи.
Помогите советом как это сделать плиз[/quote]
Есть несколько способов поставить в автозагрузку на выбор:
1.Если у тебя стартуют иксы то тогда проще в /etc/xdg/autostart создать выражаясь терминологиями M$ ярлык на файлик
Re: скрипт python в автозапуск
Re: скрипт python в автозапуск
Re: скрипт python в автозапуск
Re: скрипт python в автозапуск
Друзья, прошу помочь!
Пишу скрипт на python, использована предложенном решение, прописал его в автозапуск. Проблема в том, что я не использую GUI и стартует оболочка только после ввода startx, а мой скрипт почему-то не хочет работать до запуска GUI.
Подскажите пожалуйста, куда мне копать?
Re: скрипт python в автозапуск
Re: скрипт python в автозапуск
Нужно, чтобы скрипт запускался при загрузке малинки, не дожидаясь запуска GUI.
Я новичек и в линуксе и в пайтоне, и не понимаю, почему моя программа работает только после ввода startx в консоли.
Re: скрипт python в автозапуск
Добро пожаловать в линукс)
При надобности, в линуксе можно управлять последовательностью автозагрузки.
Для этого нужно прописать свой скрипт в загрузку командой:
sudo update-rc.d имя_скрипта defaults
А можно тупо по старинке прописать свой скрипт в /etc/rc.local перед «exit 0»
Если пусть нестандартный, то прописывать полностью.
А файлы «имя.desktop» с прописанным в нутри «Exec=/путь/мой_скрипт» в
/.config/autostart
запускаются десктопным менеджером, в данном случае LXDE, у openbox-a другая система автостарта.
Re: скрипт python в автозапуск
Re: скрипт python в автозапуск
Я прописал программу в автозагрузку, но она не стала запускаться, ругаясь на невозможность загрузки некоторых модулей (см. скрин: https://yadi.sk/i/fZkOreh3Vsmfn )
Подскажите пожалуйста, что я делаю не так?
Re: скрипт python в автозапуск
Re: скрипт python в автозапуск
Спасибо всем за Ваши советы!
Запустить программу без компилятора так и не получилось, а вот новый скрипт с одной строкой вызова моей основной программы система приняла. Т. ч. все заработало!
Помимо этого, Вы помогли мне немного разобраться в линухе, дав направление, где мне копать. Еще раз спасибо Вам всем за Вашу помощь!
Re: скрипт python в автозапуск
Всем доброго времени суток!
Пишу небольшой скрипт на python, с котором хотелось бы общаться через терминал. Затем добавил его в автозагрузку.
При запуске Raspbian после запуска рабочего стола мой скрипт выполняется 2 раза подряд (есть запись в log файле). Причем при первом запуске он не открывает терминал, а при втором запуске- открывает терминал.
Здесь привел условный пример скрипта, загружающий одно ядро на 100%
С raspberry работаю через VNC терминал. Если послать команду CTRL+ALT+DEL, то в списке процессов есть 2 Команды: python, каждый с загрузкой системы по 25%, что логично с учётом скрипта
Собственно вопрос: почему так происходит и как сделать что-бы скрипт запускался один раз?
Как выполнить скрипт при запуске на Raspberry Pi
Три части:
Компьютер Raspberry Pi является отличным инструментом для создания всех видов интересных DIY проектов. Используется ли он как медиацентр, веб-сервер, игровая консоль или просто компьютер, существует множество причин, по которым вам может понадобиться конкретная программа или сценарий автоматически запускаемый при загрузке Raspberry Pi. Хотя существует множество способов запуска скриптов при запуске, выполнение скрипта при загрузке среды рабочего стола является самым простым методом с наибольшей универсальностью.
Часть 1. Настройка Raspberry Pi
1. Понимание задач и как это работает
Этот метод требует среды рабочего стола PIXEL с последней версией операционной системы Raspbian Jessie. Это достигается путем редактирования файла «autostart», который запускает команды при запуске в среде рабочего стола LXDE, которая является основой, на которой построен PIXEL-рабочий стол Raspberry Pi. Этот способ является предпочтительным в сценариях, где:
2. Убедитесь, что Ваш Raspberry Pi загружается с рабочим столом
- Нажмите на значок Raspberry в верхней левой части панели задач. Затем перейдите в настройки и нажмите Raspberry Pi Configuration.
3. Перейдите на вкладку «Система»
- Убедитесь что в разделе «Boot»выбран параметр «На рабочий стол». Затем нажмите «ОК». Отлично, давайте начнем!
Часть 2. Редактирование файла автозапуска
1. Откройте главный файл автозапуска в текстовом редакторе
Для этого в терминале введите следующую команду:
Затем нажмите ↵ Enter. Это откроет файл автозапуска в редакторе nano. Команды, добавленные в этот файл, будут запускаться при запуске независимо от того, кто вошел в систему. Не беспокойтесь, если ваш файл автозапуска содержит несколько дополнительных строк, отличных от тех, которые изображены на рисунке.
2. С помощью клавиш со стрелками перейдите к концу второй строки и нажмите ↵ Enter
- Многие пользователи сообщили, что команды, добавленные ниже этой строки, не запускаются успешно, поэтому обычной практикой является добавление ваших пользовательских команд над записью @xscreensaver.
3. Добавьте команду для запуска скрипта
Вы можете ввести любую команду терминала, которую вы обычно используете для запуска вашего скрипта. Например, для запуска сценария bash под названием «myscript.sh», который находится в домашнем каталоге пользователя «pi», вы должны ввести команду:
- Аналогично, если для запуска скрипта требуются права суперпользователя, вы можете начать команду с sudo.
4. Указывайте полные пути к каждому файлу
Например, для запуска сценария Python, который требует прав суперпользователя, с именем «myscript.py», который находится в домашнем каталоге пользователя «pi», вы должны ввести полный путь к самому сценарию Python и интерпретатору Python, например в виде:
Это выполнит скрипт в новом окне терминала.
Часть 3. Сохраните файл автозапуска
1. Когда вы ввели нужные команды для запуска своего скрипта, нажмите Ctrl + X
Подтвердите изменения, введя Y и нажав ↵ Enter.
- Если вы больше не хотите, чтобы ваш скрипт запускался при запуске, просто отредактируйте файл автозапуска еще раз, только на этот раз удалите строки, которые вы добавили ранее. После сохранения и выхода ваш скрипт больше не будет запускаться автоматически при запуске.
2. Проверьте работу!
Введите в терминале:
и нажмите ↵ Enter. Ваш Raspberry Pi перезагрузится, и ваш скрипт будет запущен при загрузке рабочего стола.
Автозапуск python скрипта на Raspberry Pi.
Сегодня будет статья / заметка / ответ на часто задаваемый вопрос. Итак, кратчайшая предыстория 🙂 На нашем форуме был опубликован вопрос по поводу автозапуска скрипта при включении Raspberry. И внезапно пришло осознание, что вопрос этот возникает достаточно часто, так, почему бы, собственно, не оформить ответ на него более глобально. То есть в виде заметки на основном сайте. Так что, переходим к реализации.
Итак, способы решения поставленной задачи многообразны и разнообразны. Разберем несколько из них, может пару-тройку… Кстати любые комментарии по данной теме крайне приветствуются — другие варианты, плюсы/минусы, идеи, вопросы )
Создаем подопытный скрипт на python’е — script.py. Что он будет делать в данном случае вообще не важно, я возьму тестовый скрипт с ШИМ:
Останавливаться на его работе не будем, в общем-то в статье про ШИМ все это есть. Физически файл у меня находится в:
Для запуска скрипта соответственно:
Переходим к сути дела — автозапуску.
Вариант 1. Автозапуск скрипта через /etc/profile.
При запуске оболочки bash последняя использует набор стандартизированных файлов для создания окружения. К этим файлам относится и /etc/profile. Мы под шумок можем поместить в этот файл дополнительную команду, выполняющую запуск нашего скрипта. Открываем файл в редакторе:
И добавляем в конец файла строку:
Сохраняем файл, закрываем — на этом все, задача решена. Но тут необходимо упомянуть два дополнительных нюанса.
Первый связан с тем, что в соответствии с механизмом, который мы использовали, команда будет выполняться каждый раз при запуске bash в интерактивном режиме. То есть, в частности, при запуске терминала, либо при подключении к плате по SSH. Скрипт в данных случаях будет запускаться каждый раз. Дальше уже нужно смотреть по конкретной цели — нужно это или нет.
Второй нюанс заключается в том, что работать с командной строкой можно будет лишь по окончанию выполнения скрипта. И если скрипт, например, содержит бесконечный цикл, либо операции, требующие некоторого времени, то в конце команды нужно добавить амперсанд — &:
Эта модификация приведет к выполнению команды в отдельном потоке, что решает обозначенную выше проблему.
Вариант 2. Автозапуск скрипта через /etc/rc.local.
В данном случае команда, добавленная в этот файл, будет выполняться уже однократно — при запуске ОС (т. е. при включении платы). Сам процесс организации автозапуска по сути идентичен, открываем файл для редактирования:
И в конце файла, но(!) перед «exit 0» добавляем запуск скрипта:
Обращаем внимание на & в конце строки — причина его использования все в том же — обеспечить выполнение скрипта в отдельном потоке. В данном случае это еще более важно. Поскольку команды из rc.local будут выполняться в процессе загрузки системы, то запуск пользовательского скрипта с бесконечным циклом приведет попросту к тому, что система не стартанет. Так что бдительность и внимательность! 👍
По той же причине, что скрипт будет выполняться при загрузке системы, получить обратную связь от него проблематично. И если там будет ошибка, и ОС не запустится, то поиск этой ошибки может стать непростой задачей. К счастью, очень просто организовать логирование выполнения скрипта. Для этого модифицируем команду запуска:
Теперь в файл /home/pi/PythonScripts/script_log.txt будет записан, во-первых, вывод скрипта (то, что там находится в print() ), и, во-вторых, ошибки, если таковые имели место при его выполнении.
Так, на этом и заканчиваем тогда обзор данной проблемы, спасибо за внимание, прочтение, обратную связь 🙂
Автоматический запуск программ через крон на Raspberry Pi
Мы собираемся запускать программы автоматически при загрузке или через определенное время на Raspberry Pi через использование крона.
Что такое крон (Cron)?
Потребность в автоматизации задач на Raspberry Pi удваивается в области встроенных систем, особенно в приложениях, требующих минимальной настройки.
Крон может запускать программы и сценарии оболочки при загрузке или через определенные промежутки времени. Он широко используется для автоматизации повторяющихся задач, таких как отправка отчетов, ежедневное обновление погоды, полив растений, проверка значений и данных и т.д.
К тому же крон широко используется всеми программистами, начиная с веб-разработки, заканчивая робототехникой.
Запуск программы при старте
Шаг 1. Откройте crontab (кронтаб), используя команду ниже:
Шаг 2.
Далее, выберите текстовый редактор.
Шаг 3. Затем добавьте программу, которую вы хотите запустить при загрузке, в конец файла.
Шаг 4. Наконец, сохраните и выйдите.
Регулярный запуск программы
Шаг 1. Откройте crontab (кронтаб):
Шаг 2. Выберите текстовый редактор.
Шаг 3. Добавьте запланированное задание.
Для этого мы должны ознакомиться с форматом записи таблицы cron. Обратите внимание на последнюю строку:
Макет для записи cron состоит из шести компонентов: минуты, час, день месяца, месяц года, день недели и команда, которая должна быть выполнена.
Например, предположим, что вы хотите запускать программу с именем filename.py каждый день в 3 часа дня. Запись должна выглядеть так:
Шаг 4. Сохраните и выйдите.
Шаг 5. Чтобы просмотреть текущие запланированные задачи, введите команду ниже:
Примеры использования крона
Пример 1. Чтобы запускать задание cron каждые 5 минут, добавьте следующее:
Пример 2. Чтобы запускать задание cron каждые четверть часа (т.е. каждые 15 минут), добавьте следующее:
Например, если время 11:00, следующее задание будет запущено в 11:15, 11:30, 11:45 и так далее.
Пример 3. Чтобы запускать cron-задание каждый час на 30-й минуте:
Например, если время 10:00, следующее задание будет выполняться в 10:30, 11:30, 12:30 и так далее.
Пример 4. Вы также можете определить несколько временных интервалов, разделенных запятыми. Например, следующее задание cron будет запускаться трижды каждый час на 0, 5 и 10 минутах:
Пример 5. Запускать cron-задание каждые полчаса, то есть каждые 30 минут:
Например, если сейчас 10:00, следующее задание будет выполняться в 10:30, 11:00, 11:30 и так далее.
Пример 6. Запускать задание каждый час (на 0 минуте):
Например, если сейчас 10:00, следующее задание будет запущено в 11:00, 12:00, 13:00 и так далее.
Пример 7. Запускать задание каждые 2 часа:
Например, если сейчас 10:00, следующее задание будет запущено в 12:00.
Пример 8. Запускать задание каждый день (запускается в 00:00):
Пример 9. Выполнять задание каждый день в 3 часа ночи:
Пример 10. Выполнять задание каждое воскресенье:
Начнется ровно в 00:00 в воскресенье.
Пример 11. Выполнять задание каждый день недели с понедельника по пятницу, т.е. каждый будний день:
Пример 12. Выполнять задание каждый месяц (т.е. в 00:00 1-го числа месяца):
Пример 13. Запустить задание в 16:15 в день месяца 1:
Пример 14. Выполнять задание каждый квартал, то есть в день месяца 1 каждые 3 месяца:
Пример 15. Запустить задание в определенный месяц в определенное время:
Работа начнется в 00:05 в апреле.
Пример 16. Выполнять задание каждые 6 месяцев:
Это задание cron будет запускаться в 00:00 1-го числа каждого 6-го месяца.
Пример 17. Выполняйте задание каждый год:
Это задание cron начнется в 00:00 1-го числа января.
Проблема с автозапуском программы на Raspberry Pi
Есть программа, которая выводит список файлов на текстовый экран и листает его тактовыми кнопками. Нужно добавить ее в автозапуск. Выполняю эту последовательность команд:
И ничего не происходит при запуске raspberry. Только исчезают черные квадраты из первой строчки, значит инициализация дисплея прошла. Но списка файлов нет. Программа нормально работает только при запуске вручную. Код программы на всякий случай:
Какой дистрибутив? Raspbian?
Можно ещё запустить программу не как сервис, а как автостартуемое приложение в KDE, gnome или что там у тебя.
самый просто способ это не создавать init скрипт, а просто добавить запуск скрипта в /etc/rc.local
Тогда программа запустится в фоновом режиме. Свою программу я позже объеденю с другой, с GUI. Поэтому фоновый режим не катит.
ты сначала максимально подробно опиши какой результат хочешь получить, а мы тебе тогда предложим варианты
Суть: есть Raspberry Pi с установленной программой Pronterface (управляет 3D-принтером). Я хочу: 1) приделать к Raspberry текстовый дисплей на HD44780, чтобы он выводил список файлов на SD-карте в принтере, параметры принтера и прочую инфу (написать ПО для этого) 2) приделать к Raspberry 3-4 кнопки, которыми можно листать список файлов на дисплее и запускать печать и т.д. (тоже написать ПО для этого) 3) вкорячить программу, выполняющую пункты 1 и 2 в код Pronterface (Pronterface написана на Пайтоне и имеет открытый код). 4) Сделать так, чтобы Pronterface стартовала автоматически при включении устройства. Ведь клавиатуры, мыши и монитора потом не будет. Будет только текстовый дисплейчик и блок из 3-5 тактовых кнопок.
1 и 2 пункты я выполнил. 3 пункт на стадии отладки. С 4 пунктом траблы, ибо все способы автозапуска в Линуксе, которые я знаю и которые предлагает Гугл предполагают работу в фоном режиме. Но тогда нет взаимодействия ни с кнопками, ни дисплеем. Значит, фоновый режим не катит, нужно чтобы Pronterface запускалась полноценно, вместе с GUI. Запускается в ручную она просто:
например можно в /etc/inittab поменять вызов getty на первом терминале на вызов твоего скрипта. Но я не уверен что это правильный способ