Рейтинг:1

Отключить процесс от потока выполнения

флаг cn

Я запускаю скрипт с правилами udev при каждом подключении USB-устройства. Проблема в том, что мне нужно, чтобы этот скрипт запускал другой через 20 секунд.

Это код.

#!/бин/баш
#
спать 20
/'Другой сценарий'

Проблема в том, что делать это с задержкой операции монтирования udev, чего я не хочу.

Пробовали это:

#!/бин/баш
#
nohup bash/'Другой скрипт' & 
фг

Помещение ожидания внутри «Другого сценария».

РЕШЕНО

Правило udev было запущено с RUN{type}, в этом была проблема, оно не может обрабатывать длительный процесс, я просто создаю службу systemd и запускаю ее, используя ENV{SYSTEMD_WANTS} в правилах udev и подобно шелку.

Сделай это:

/etc/udev/rules.d/99-usb.rules

    ACTION=="добавить", ENV{SYSTEMD_WANTS}="usb.service"

/etc/systemd/система/usb.service

    [Ед. изм]
    Описание=Автозапуск USB.
    
    [Оказание услуг]
    Тип = ваншот
    ExecStart=/Script.sh

/Script.sh

    #!/бин/баш
    #
    спать 20
    /'Другой сценарий'
флаг in
Одним из вариантов может быть `bash other.sh & disown`
Jobesmor avatar
флаг cn
я пытаюсь, но получаю странное поведение, я читал немного получается, чем если один терминальный процесс, который «запускает», заканчивается до «запущенного», тогда последний также закрывается, забавный факт 18.04 поздно, работает как шелк, но нужно, чтобы он работал хотя бы на 16.04
bac0n avatar
флаг cn
обратитесь к руководству udev `RUN{type}`
bac0n avatar
флаг cn
Связано: [Почему мое правило udev не работает?] (https://askubuntu.com/a/1222166/986805)
Zanna avatar
флаг kr
Связанный пост решает вашу проблему?
muru avatar
флаг us
Запуск модуля systemd не должен блокировать udev, так что вы должны делать это вместо того, чтобы возиться со сном и nohup.
fuzzy drawings avatar
флаг tj
Он мог использовать `at now -f scrip2.sh`, чтобы запустить другой скрипт. Это также не заблокирует udev. OP говорит, что по какой-то причине ему нужна 20-секундная задержка, поэтому запуск `scrip2.sh` с `sleep 20` будет работать без необходимости записи systemd `.service`.
Jobesmor avatar
флаг cn
Я также пробую это с «at now -f» и использую «sleep» при запуске скрипта, у меня не работает, опять же, не совсем уверен, потому что на 18+ работает нормально.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.