Малина Pi запускает программы автоматически при запуске

Я построил беспроводную сенсорную сеть, состоящую из двух Raspberry Pi (runnnig Raspbian) с датчиками и базовой станции Raspberry Pi, которая собирает данные.

Каждый раз, когда я хочу запустить систему, я должен войти в каждый сенсорный блок и запустить две петлевые программы Python, один для сбора данных датчиков и один для передачи на базовую станцию.

Эти устройства находятся в неудобных местах без доступа к Интернету, поэтому брать монитор, клавиатуру и мышь со мной, чтобы заставить их работать, не совсем просто. Есть ли способ, который я могу настроить для автоматического входа в систему, запустить программу 1, а затем запустить программу 2 автоматически при запуске?

22 голоса | спросил Kersakov 1 MarpmSun, 01 Mar 2015 15:21:41 +03002015-03-01T15:21:41+03:0003 2015, 15:21:41

6 ответов


15

Вы можете добавить эти 2 программы в файл rc.local. Это запустит их при запуске. Более подробную информацию можно найти на http://www.raspberrypi.org/documentation/linux/usage/rc-local.md .

ответил Xer0FyT 1 MarpmSun, 01 Mar 2015 15:38:02 +03002015-03-01T15:38:02+03:0003 2015, 15:38:02
15

Ответ Xer0FyT, вероятно, является самым простым способом автоматического запуска программы в PI. Но проблемы возникают после того, как запущенная программа выйдет из строя по какой-либо причине, потому что она не будет перезапущена, так как нет мониторинга процесса. Я лично рекомендовал бы вместо этого использовать daemontools . Это довольно просто настроить (и включен в Raspbian). В основном вы создаете служебный каталог, который содержит сценарий оболочки run, который запускает вашу программу. Затем daemontools будет убедиться, что ваша программа запущена и перезагружена, если она по какой-либо причине сбой.

Установка daemontools вверх довольно проста. Просто

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. Как только это будет сделано, symlink этот каталог в /etc/service, поэтому daemontools автоматически (re) запускает его:

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 /погонный-инфо-видеопроектор-в-производства

ответил dividuum 7 J000000Tuesday15 2015, 21:28:32
8
  1. В Raspian нажмите «Меню», «Настройки», «Редактор главного меню»
  2. Нажмите «Настройки» и проверьте приложения по умолчанию для LXSession.
  3. Нажмите «ОК» и закройте редактор главного меню.
  4. Теперь нажмите «Меню» и «Предпочтения» нажмите «Приложения по умолчанию для LXSession»
  5. Конфигурация LXSession открывается.
  6. Нажмите «Автозапуск»
  7. В разделе «Ручные файлы с автозапуском» вставьте в свою командную строку java
  8. нажмите добавить
  9. закройте приложение конфигурации LXSession и перезагрузите pi

    ваше приложение java должно запускаться после перезагрузки

ответил Palmeta 10 AMpSun, 10 Apr 2016 00:10:34 +030010Sunday 2016, 00:10:34
2

У вас, вероятно, уже установлен cron для некоторых домашних задач PI.

Поиск man 5 crontab для @reboot.

ответил yeti 7 J000000Tuesday15 2015, 23:48:05
0

Возможно, вам понадобится изучить service. Вы можете создать сценарий инициализации, который является частью инициализации системы, и поставить его на соответствующий уровень выполнения.

Запустите man service.

Вот руководство по созданию сценариев инициализации: http://www.novell.com /coolsolutions/feature/15380.html

ответил Bex 1 MarpmSun, 01 Mar 2015 21:39:47 +03002015-03-01T21:39:47+03:0009 2015, 21:39:47
0

Просто следуйте этому

ответил Ehsan Ansari 11 J000000Saturday15 2015, 11:06:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132