LINUX.ORG.RU

Правило udev неработат!!

 , ,


1

2

Вопрос в следующем: Нужно чтоб при вставлении флешки (пока любой) выполнялся скрипт. Соответственно это происходит через правила udev (не мне вам говорить). Собственно создаю правило типа: KERNEL==«sdb» , RUN+=«/home/gps/gps/runTest.sh» в /etc/udev/rules.d/GPS.rules Проверяю его: udevadm test /sys/block/sdb правило без ошибок и скрипт вроде должен выполняться, но не выполняется((

Что содержит runTest.sh? udev выделяет очень немного времени на запускаемые через RUN программы, прибивая их по его истечении. Если должно запускаться что-то долгоиграющее, создайте сервис и запускайте его через SYSTEMD_WANTS.

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

Скрипт прост до безобразия:

#!/bin/sh

hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0

Из gpssim.bin берутся данные, он создается отдельно. Длительность разная, но не менее 600 сек нужно.

Пока с флешкой не получалось (не успел реализовать написанное выше), пробовал сделать через хоткей клавиши, но каким хреном этот бублик ограничивает длительность до 100 сек?

То есть если запускаю с терминала то стабильно 654 секунды, а через хоткей с клавы 100 сек.

При этом лог выдает:

result: streaming terminated (-1004)

И почему так не ясно(((

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

значит, у Вас скрипт запускается, но его прибивают по таймауту?
(просто сомнения были про systemd-based системы)

ок... ща посмотрим, шо там с этими таймаутами %)

p.s. я сам с такой проблемой не сталкивался, но интересно

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

Тоже было такое, но у меня udev запускал скрипт, который проверял наличие xorg и запускал графическую программу. В итоге по таймауту прибивалось и скрипт и Gui. Но починил. Надо глянуть как.

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

вот что получилось:
нужен еще один простой скриптик, который будет запускать runTest.sh, /home/gps/gps/runTest-wrapper.sh:

#!/bin/bash

echo /home/gps/gps/runTest.sh | at now

и «chmod +x /home/gps/gps/runTest-wrapper.sh»

ну и строка udev'a:
SUBSYSTEM=="block", KERNEL=="sd?", ACTION=="add", SUBSYSTEMS=="usb", RUN+="/home/gps/gps/runTest-wrapper.sh"


как-то так...

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

Вот так вот:

gps@gps-NUC6CAYH:~/gpsi$ systemctl status onFlashInserted.service
Warning: The unit file, source configuration file or drop-ins of onFlashInserted.service changed on disk. Run 'systemctl daemon
● onFlashInserted.service
   Loaded: loaded (/etc/systemd/system/onFlashInserted.service; static; vendor preset: enabled)
   Active: inactive (dead) since Sat 2019-11-02 12:09:02 +07; 4s ago
  Process: 30860 ExecStart=/home/gps/gpsi/runTest.sh (code=exited, status=0/SUCCESS)
 Main PID: 30860 (code=exited, status=0/SUCCESS)

ноя 02 12:09:02 gps-NUC6CAYH systemd[1]: Starting onFlashInserted.service...
ноя 02 12:09:02 gps-NUC6CAYH runTest.sh[30860]: warning: commands will be executed using /bin/sh
ноя 02 12:09:02 gps-NUC6CAYH runTest.sh[30860]: job 4 at Sat Nov  2 12:09:00 2019
ноя 02 12:09:02 gps-NUC6CAYH systemd[1]: Started onFlashInserted.service.
JokesterT ()

Решено

Господа, всем огромнейшее спасибо. Проблему решил при помощи nohup.

Причем я и раньше пробовал его, и в сам скрипт писал перед командой и настройках комбинации клавиш перед скриптом писал. В итоге полностью команду написал при определении комбинации клавиш.

Вот так выглядит

nohup hackrf_transfer -t /home/gps/gpsi/gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0 &

Еще раз спасибо за отзывчивость.

JokesterT ()
Ответ на: Решено от JokesterT

интересненько... меня nohup, в свое время, послал лесом, а фишку с at я на каком-то буржуйском сайте откопал (у меня держит бесконечно), но хорошо, что получилось :)

metawishmaster ★★★★ ()

Меня заинтересовал еще один момент:

Почему при отключенном мониторе (физически, пред запуском компа), не срабатывают горячие клавиши? Ладно, фиг с ним, эмулятор VGA монитора паяется за пару минут, но почему так.

Причем инфу я так и не нашел.

JokesterT ()