LINUX.ORG.RU
ФорумAdmin

Motion не запускает скрипт.

 ,


0

1

Всем привет. Очень нужна помощь. Заранее признателен за любое участие. Бьюсь неделю.

Дано: Планшет на Atom N455
Linux Mint 20.3 Cinnamon
Установленный Motion. Работает используя встроенную фронтальную камеру. Видео, удаленное подключение, детектор движения… Все работает.

Задача:
Заставить запускать скрипт по движению Пробовал указать в config:

  • on_motion_detected /home/alex/test.sh (скрипт в папке /home/alex)
  • on_motion_detected /etc/motion/test.sh (скрипт в папке /etc/motion)
  • on_motion_detected sh /home/alex/test.sh (а также путь до motion)
  • on_motion_detected sudo /home/alex/test.sh (а также путь до motion)
  • on_motion_detected sudo /usr/bin/bash /home/alex/test.sh (а также путь до motion)

также пробовал эти же пути прописать в:
on_event_start /home/alex/test.sh

права на скрипт:
$chmod ugo+x test.sh

Срипт:
#!/bin/bash
beep

Скрипт отлично работает из терминала как:

  • /home/alex/test.sh
  • sh /home/alex/test.sh
  • sudo /home/alex/test/sh
  • ./test.sh
  • так же отлично работает при подключении через ssh.

Логи motion (один из… меняется только путь по срипта):
[1:ml1] [DBG] [EVT] [дек 03 01:51] exec_command: Executing external command ‘/home/alex/test.sh’
[1:ml1] [DBG] [VID] [дек 03 01:51] v4l2_capture: 1) vid_source->pframe 3
[1:ml1] [DBG] [VID] [дек 03 01:51] v4l2_capture: 2) vid_source->pframe 3
[1:ml1] [DBG] [VID] [дек 03 01:51] v4l2_capture: 3) vid_source->pframe 0 vid_source->buf.index 0
[1:ml1] [DBG] [VID] [дек 03 01:51] v4l2_capture: the_buffer index 0 Address (bdf5e000)
[1:ml1] [DBG] [EVT] [дек 03 01:51] exec_command: Executing external command ‘/home/alex/test.sh’

Большого опыта в Linux нет. Испробовал все, что нарыл..



Последнее исправление: alex_kuz (всего исправлений: 7)

Ответ на: комментарий от firkax

я так понимаю, при добавление строки
beep >> /tmp/beep.log
должен появиться файл с логом.
Тут проблема, он не появился.
Перезагрузил дважды.

скрипт так должен выглядеть?
#!/bin/bash
beep
beep >> /tmp/beep.log

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

указал как вы сказали
звука нет
в логах motion:
ml1] [NTC] [ALL] [дек 03 17:56] image_ring_resize: Resizing pre_capture buffer to 4 items
[2:ml2] [NTC] [ALL] [дек 03 17:56] image_ring_resize: Resizing pre_capture buffer to 5 items
[2:ml2] [WRN] [NET] [дек 03 17:56] netcam_init_jpeg: no new pic, no signal rcvd
[2:ml2] [NTC] [ALL] Above message repeats 2 times
[2:ml2] [NTC] [ALL] [дек 03 17:56] motion_detected: Motion detected - starting event 1
[1:ml1] [NTC] [ALL] [дек 03 17:56] motion_detected: Motion detected - starting event 1
[2:ml2] [WRN] [NET] [дек 03 17:57] netcam_init_jpeg: no new pic, no signal rcvd
[2:ml2] [NTC] [ALL] Above message repeats 6 times [2:ml2] [NTC] [ALL] [дек 03 17:57] mlp_actions: End of event 1 [2:ml2] [WRN] [NET] [дек 03 17:57] netcam_init_jpeg: no new pic, no signal rcvd [1:ml1] [NTC] [ALL] Above message repeats 7 times
[1:ml1] [NTC] [ALL] [дек 03 17:57] mlp_actions: End of event 1
[2:ml2] [NTC] [ALL] [дек 03 17:58] motion_detected: Motion detected - starting event 2
[2:ml2] [WRN] [NET] [дек 03 17:58] netcam_init_jpeg: no new pic, no signal rcvd
[2:ml2] [NTC] [ALL] Above message repeats 4 times [2:ml2] [NTC] [ALL] [дек 03 17:58] mlp_actions: End of event 2 [2:ml2] [WRN] [NET] [дек 03 17:58] netcam_init_jpeg: no new pic, no signal rcvd [2:ml2] [NTC] [ALL] Above message repeats 4 times
[2:ml2] [NTC] [ALL] [дек 03 17:58] motion_detected: Motion detected - starting event 3
[2:ml2] [WRN] [NET] [дек 03 17:58] netcam_init_jpeg: no new pic, no signal rcvd
[2:ml2] [NTC] [ALL] Above message repeats 4 times
[2:ml2] [NTC] [ALL] [дек 03 17:58] mlp_actions: End of event 3 [2:ml2] [NTC] [ALL] [дек 03 17:58] motion_detected: Motion detected - starting event 4
[2:ml2] [WRN] [NET] [дек 03 17:58] netcam_init_jpeg: no new pic, no signal rcvd
[2:ml2] [WRN] [NET] Above message repeats 2 times
[2:ml2] [WRN] [NET] [дек 03 17:59] netcam_init_jpeg: no new pic, no signal rcvd
[2:ml2] [NTC] [ALL] Above message repeats 20 times
[2:ml2] [NTC] [ALL] [дек 03 17:59] mlp_actions: End of event 4
[2:ml2] [NTC] [ALL] [дек 03 17:59] motion_detected: Motion detected - starting event 5

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

Переключите уровень логов в дебаг и посмотрите на предмет: exec_command: Если остановка motion не критична, остановите системную службу motion и запустите его вручную без режима демона от рута, предварительно укажите уровень логирования. Инициируйте сработку и посмотрите. Правда все, что он запишет будет естественно принадлежать руту.

UPD: попробуйте для начала on_event_start вместо on_motion_detected Потому что первое это начало события, а второе это любое движение перед камерой, хотя beep при этом должен работать.

yaba ★★
()
Последнее исправление: yaba (всего исправлений: 1)
Ответ на: комментарий от yaba

Спасибо огромное за участие, но я совсем новичок…поэтому вопрос как?
Переключите уровень логов в дебаг и посмотрите на предмет: exec_command:

И когда и если у меня это получится, что я должен или не должен увидеть?

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

UPD: попробуйте для начала on_event_start вместо on_motion_detected Потому что первое это начало события, а второе это любое движение перед камерой, хотя beep при этом должен работать
с этим проще, сейчас попробую.

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

Прописать в конфиг: on_event_start /usr/bin/beep

Потом запустить motion от root: # motion -n -d 8 -k 6 -c <путь к конфигу> вроде так, но лучше изучите уровни логирования, если много будет выводить.

Инициировать сработку и смотреть на предмет: exec_command

Завершить по <Ctrl+C>

yaba ★★
()
Последнее исправление: yaba (всего исправлений: 1)
Ответ на: комментарий от yaba

UPD: попробуйте для начала on_event_start вместо on_motion_detected Изменил. Перезагрузил motion
sudo systemctl retart motion (надеюсь команда верна?)
ничего не изменилось.
Motion фиксирует движение и ничего.
Уточню, главная задача не получить beep, а запустить скрипт.

Изначальный скрипт был другой.
#!/bin/bash
export DISPLAY=:0
export XAUTHORITY=/home/alex/.Xauthority
xscreensaver-command -activate

Цель-разбудить экран при обнаружении движения.
Предполагалось использовать on_event_start
Скрипт работает из терминала. Но, опять же, не работает из Motion.
Предположил, что ошибка в скрипте. Доустановил beep.
Начал пробовать простейший скрипт с beep - не работает.

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

Прописать в конфиг: on_event_start /usr/bin/beep

Потом запустить motion от root: # motion -n -d 8 -k 6 -c <путь к конфигу> вроде так, но лучше изучите уровни логирования, если много будет выводить.

Ок. сейчас буду пробовать.

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

не дает запустить от root

alex@alex-tab:~$ motion -n -d 8 -k 6 -c /etc/motion/motion.conf
[0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0:motion] [ERR] [ALL] myfopen: Error opening file /var/log/motion/motion.log with mode a: Permission denied
[0:motion] [EMG] [ALL] motion_startup: Exit motion, cannot create log file /var/log/motion/motion.log: Permission denied

alex_kuz
() автор топика