Я пытаюсь выполнить скрипт, когда загружается мой Raspberry Pi. Я хотел бы, чтобы веб-браузер открывался автоматически.
Я пытался найти простое решение (например, сбросить мой скрипт в какой-то каталог «автозагрузка» или что-то подобное), но я не вижу ничего подобного.
Я посмотрел в Upstart , но я изо всех сил пытаюсь понять, как это работает. Любые скрипты, которые я пробовал, не работали, когда я их тестировал.
.xinitrc
или.xsession
файл.Ответы:
Для запуска Midori при запуске, посмотрите этот учебник . Для самостоятельных решений читайте дальше.
Вы можете добавить свою исполняемую команду скрипта внизу,
.bashrc
которая будет запускать ваш скрипт каждый раз, когда вы открываете терминал (или запускаете новый экземплярbash
) .Убедитесь, что вы находитесь в
pi
папке:Создайте файл и напишите скрипт для запуска в файле:
Сохранение и выход: Ctrl+ X, Y,Enter
Откройте
.bashrc
для конфигурации:Прокрутите вниз и добавьте строку:
./superscript
Сохранение и выход: Ctrl+ X, Y,Enter
Если вы ищете решение, которое работает при загрузке с консоли , посмотрите по этой ссылке . Основное краткое изложение:
Создайте файл для вашего скрипта запуска и запишите ваш скрипт в файл:
Сохранение и выход: Ctrl+ X, Y,Enter
Сделайте скрипт исполняемым:
Зарегистрируйте скрипт для запуска при запуске:
Если вы хотите, чтобы скрипт запускался при загрузке в среде LXDE , вы можете взглянуть на это сообщение на форуме Raspberry Pi :
Перейдите к
~/.config/lxsession/LXDE-pi
Откройте
autostart
файл в этой папке:Добавить
@midori
на новую строку. Если вы хотите запустить что-то вроде скрипта Python, поместите что-то вроде@python mypython.py
новой строки. Запустить файл сценария можно@./superscript
, но по какой-то причине сценарий выполняется в бесконечном цикле (возможно, это остановит это).Сохранение и выход: Ctrl+ X, Y,Enter
Перезапустите Raspberry Pi в среде LXDE.
источник
$ sudo startx
?.bashrc
не читается при загрузке системы или когда пользователь входит в систему , только при открытии нового терминала (и читается каждый раз, когда пользователь открывает новый терминал). Я сбит с толку, что этот ответ получил так много голосов: первая часть совершенно неверна . Третья часть правильна для выполнения программы с графическим интерфейсом.Я видел, как большинство людей делают это (заглянули на форумы Raspberry Pi), и с успехом справились
/etc/rc.local
.Все, что вам нужно сделать, это поместить
./myscript
в текстовый файл rc.local. Если это в питоне, поставьpython myscript.py
.Это буквально «простое решение (например, добавление моего скрипта в какую-то директорию« запуска »или что-то подобное)» - возможно, поиск по форумам, когда у вас также возникают вопросы, это решение появилось в первых 4 результатах поиск Гугл!
источник
python myscript.py
. Если вы хотите chmod + x и добавить его#! /bin/python
, вы можете запустить скрипт, выполнив команду «$pathtofile/myscript.py
где$pathtofile
есть»,.
если вы находитесь в той же директории, или укажите абсолютный или относительный путь к файлу./etc/rc.local
только для запуска системных служб (программ, которые не имеют пользовательского интерфейса).Добавьте его в crontab
Crontab запускает команды в определенное время.
Отредактируйте файл:
Добавьте строку в файл (здесь скрипт Python):
источник
python3
), см. Здесь/etc/rc.local
только для запуска программ, которые не имеют пользовательского интерфейса.Автозапуск приложений xorg
Если скрипт, который вы хотите запустить, требует сеанса xorg, вы можете попробовать следовать спецификации автоматического запуска freedesktop, которая может работать или не работать в зависимости от используемой среды рабочего стола.
Кроме того, вы можете настроить таргетинг на свою конкретную рабочую среду, как описано на странице https://wiki.archlinux.org/index.php/autostarting .
Запуск сценария как службы systemd
Если ваш сценарий соответствует описанию демона или «службы», и ваша система работает под управлением systemd, как в случае с raspbian и большинством современных версий, тогда вы можете настроить свой сценарий для запуска в качестве службы systemd - это обеспечивает детальный контроль над жизненный цикл и среда выполнения, а также предварительные условия для (повторного) запуска сценария, такие как работоспособность и работоспособность сети. Также возможно настроить перезапуск службы в случае сбоя (
Restart=always
и, например, задержки между перезапускамиRestartSec=10
).Для общесистемного использования создайте файл системного модуля
/etc/systemd/system
, например, с помощьюvim /etc/systemd/system/autossh.service
:Смотрите также:
[
unit
] конфигурация[
service
] конфигурацияТеперь мы готовы протестировать сервис:
Проверка статуса услуги:
Остановка сервиса:
Убедившись, что сервис работает должным образом, включите его:
источник
Я хочу добавить свои два цента, хотя это старый вопрос, но его часто просят сделать простую вещь - автозапуск. Я попробовал все предложенные решения во всех ответах на этот вопрос. Никто из них не работал для меня. Я использую Raspberry PI Model 2 с Raspbian.
Единственный способ успешно запустить автозапуск приложения - это выполнить скрипт следующим образом. Я говорю успешно, потому что мое приложение запустилось, как и ожидалось, без каких-либо проблем, таких как запуск с неправильного рабочего пути.
1. Создайте пустой файл с расширением .sh и назовите его как хотите.
2. Скопируйте и вставьте следующее ТОЧНО, за исключением того, что измените «имя вашего приложения» на имя скрипта, который вы только что создали.
Затем сохраните файл скрипта в папке вашего приложения
Затем откройте
/home/pi/.config/autostart
папку. Это может быть иначе в вашем случае. Просто откройте домашнюю папку и включите просмотр скрытых папок. открыть.config/autostart
. Если вы не видите папку автозапуска, то создайте папку с именем автозапуска в папке .config.в папке автозапуска вам нужно будет создать ярлык для файла сценария, который вы создали следующим образом. Создайте пустой файл с расширением
.desktop
.Скопируйте и вставьте следующий в пустой файл рабочего стола , за исключением вам нужно будет изменить
Comment
,Name
,Exec
,Path
иIcon
значение поля.Сохраните и закройте файл после изменения всех необходимых полей. Вы сделали. Просто проверь это.
источник
/usr/local/bin/ApplicationName
...?home
если это отдельное устройство) не будет проблемы с недоступностью файла сценария (или исполняемого файла), когда система возвращается к однопользовательской/bin/sh
оболочке! В настоящее времяsystemd
способ состоит в том, чтобы смонтировать оба/
и/usr
до запуска PID 1 ...У меня тоже были проблемы с этим. На Raspberry Pi3 под управлением Raspbian я так и сделал:
источник
На Raspberry Pi3 под управлением Raspbian Stretch вот что я сделал:
Отредактируйте файл автозапуска LXDE-pi
Добавьте это в конец этого файла
сохранить и перезагрузить
источник
Способ 1:
Чтобы запустить команду автоматически при входе в систему, поместите команду в файл с именем
в каталоге пользователя (например / home / pi)
Например, файл может содержать
запустить Chromium в полноэкранном режиме, указанном на www.google.com
Способ 2:
Это решение работает очень хорошо. Как только браузер загружается, в верхнем левом углу экрана появляется маленький черный квадрат, который, по-видимому, является общей ошибкой (о ней упоминали на форумах другие), но в остальном полноэкранный режим скрывает все, кроме страницы браузера.
Отредактируйте файл автозапуска:
Закомментируйте все, используя «#» в начале каждой строки, а затем добавьте следующие строки
Авто запустить браузер
При необходимости используйте инструмент настройки, чтобы включить автоматический запуск графического интерфейса при включении питания.
Если вам нужно вернуться обратно в командную строку CTRL+ ALT+F1
CTRL+ ALT+F2
источник
Вы можете разместить свой скрипт внизу
/etc/profile
файла.Другие варианты не работали для меня, но это может быть потому, что я разместил свой скрипт на рабочем столе.
источник
создайте файл .sh с помощью команд «python /path/to/your/script.py», введите «sudo nano /etc/rc.local» и введите путь к файлу .sh
до
Или вы можете просто ввести
или же
если вы хотите, чтобы скрипт запускался при запуске
внутри типа файла в
источник
это работает . (При каждой перезагрузке автоматически готовятся следующие представления)
источник
Это то, что я обычно делаю.
Отредактируйте файл:
sudo nano .bashrc
Перейти в конец файла и написать:
sudo python mycode.py
Если вы хотите, чтобы выходные данные были сохранены в текстовом файле, отредактируйте код на шаге 3 следующим образом:
sudo python mycode.py >> output.py
Надеюсь это поможет!
источник