LINUX.ORG.RU

Как сделать автозапуск bash скрипта

 , ,


1

1

Здравствуйте. Прошу помощи.

Оборудование: одноплатник Orange Pi PC
ОС: Armbian (на основе Debian)
Задача: запускать видео-файлы по сигналам на GPIO

Решил пойти самым простым путем. Написал bash скрипт:

#! /bin/bash

#Configure GPIO
sudo echo "12" > /sys/class/gpio/export
sudo echo "in" > /sys/class/gpio/gpio12/direction

#Start video
while (true)
do
  if [ $(cat /sys/class/gpio/gpio12/value) == 1 ]
  then
    sudo mpv --fs /home/user/Video/movie.mov
  fi
  sleep 1
done

При запуске из терминала все работает отлично. Но необходимо чтобы скрипт автоматически запускался при старте системы и постоянно висел в ожидании команды.

Попробовал решить это через cron

@reboot sudo /home/user/startmovie

Но ничего после запуска не происходит. Вернее скрипт как-то запускается, так как папка /sys/class/gpio/gpio12/ появляется. Но видео не выводится. Возможно оно и пытается куда-то выводиться, но явно не на мой монитор.

Так как в линуксе я только пытаюсь разобраться прошу помощи. Как сделать автозапуск так, чтобы после старта системы скрипт запускался. А по сигналу на GPIO запускал видео на мониторе.

mpv же сессия X.Org нужна, так что видимо не хватает

export DISPLAY=:0
до вызова mpv.

И как-то много sudo. И скрипт и всё в скрипте, достаточно только скрипт так запускать (sudo ещё и окружение может менять, смотря как запускать). Наверное, ещё не хватает указания логина пользователя, от которого запускать mpv.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Спасибо.

export DISPLAY=:0 помогло

sudo из скрипта убрал, оставил только в cron. Логин плееру не потребовался.

beejuice
() автор топика
Ответ на: комментарий от xaizek

А можете еще подсказать, как отключить Xfce при запуске. А еще лучше, чтобы и консоли не было. Просто черный экран.

beejuice
() автор топика
Ответ на: комментарий от beejuice

Для Debian я точно не скажу. Посмотрел бы на строку с x1 в начале в /etc/inittab и пошёл, куда там указывает команда. Обычно там display manager вообще, но может будет и сразу запуск иксов на Orange Pi. Иксы скорее всего читают ~/.xinitrc, но что туда записать, чтобы ничего не запускалось, не уверен, это надо искать.

xaizek ★★★★★
()
Ответ на: комментарий от beejuice

Проблема в том, что тут вообще нет /etc/inittab

Может там systemd, как с ним я вообще без понятия.

И ~/.xinitrc тоже нет)

Это нормально, если локального нет, то может какой-то по умолчанию запускаться. Просто пустой он может не работать, а что в него записать, чтобы ничего не запускать, я не уверен.

Хотя, с арчевики:

If there is an empty .xinitrc file in your $HOME, either delete or edit it in order for X to start properly. If you do not do this X will show a blank screen with what appears to be no errors in your Xorg.0.log. Simply deleting it will get it running with a default X environment.

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.