aspiring |
|
Темы:
32
Сообщения:
152
Участник с: 12 октября 2011
|
народ подскажите пожайлуйста способ, и есть ли вообще такой, чтобы запускать большие программы по событию UDEV само событие прекрасно отрабатывает, но кроме простых программ создания/удаления файлов и т.д. ничего не запускается nohup и & не помагает, после них удаву все же как то удается резать более навороченные проги. Только один выход в голове - делать и отслеживать симлинки но это же костыль костыльный. |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
Обработка события UDEV должна завершиться за короткое время, поэтому он убивает дочерние процессы, превысившие таймаут выполнения, считая их "зависшими". Отвязать обработчик от UDEV можно, использовав в качестве посредника systemd: команда /usr/bin/systemctl --no-block start юнит посылает systemd сообщение о том, что надо запустить, и правило UDEV благополучно завершается. Разумеется, сам обработчик для этого нужно вписать в юнит. Пример использования. P.S. Если событие это появление устройства, привязать к нему юнит можно и другим способом, без помощи UDEV. Для этого можно создать каталог вида /etc/systemd/system/юнит-устройства.device.wants , и в нём – симлинк на юнит обработчика. Юниты устройств systemd создаёт автоматически, точное имя можно посмотреть в писке юнитов по команде systemctl. |
aspiring |
|
Темы:
32
Сообщения:
152
Участник с: 12 октября 2011
|
не получается запустить тот же gedit через предложенную схему, но хоть создать файл через sudo от др пользователя заработало. С командной строки скрипт работает, exec не помогает. ЧЯДН? |
Natrio |
|
Темы:
47
Сообщения:
4763
Участник с: 08 января 2011
|
aspiring:) Кто ж знал, что вы пытаетесь запускать из UDEV не простые программы, а иксовые(!) гуи от пользователя! Предложенная схема вполне годится для демонов, а для запуска иксовых программ потребуется дополнительно воссоздавать всё пользовательское окружение, включая привязку к активному в данный момент сеансу иксов, который, для начала, надо ещё определить... На самом деле, я как-то реализовывал такое, и у меня даже получилось, но уж больно громоздким вышел сей монстр, и к тому же ненадёжным, ибо для каждой новой ветки иксов требовалось вносить изменения. По-моему, было бы проще запустить какую-то следилку изначально внутри иксового окружения, чтобы она мониторила события и запускала что требуется. |
aspiring |
|
Темы:
32
Сообщения:
152
Участник с: 12 октября 2011
|
у меня задача такая, после включении БТ гарнитуры (тумблер на самой гарнитуре) переподключать ее как БТ устройство, так как с первого раза она определяется не правильно (как именно еще не знаю). После этого запускать ekiga. Спасибо за наводку, буду рыть. |
indeviral |
|
Темы:
38
Сообщения:
3196
Участник с: 10 августа 2013
|
aspiring можно так попробовать. только ваше окружение укажите что корректно определить пользователя.Natrio .device.wants, а какая разница всё равно же сигнал udev даёт.
Ошибки в тексте-неповторимый стиль автора©
|
aspiring |
|
Темы:
32
Сообщения:
152
Участник с: 12 октября 2011
|
indeviral правила в удаве прописывать не надо |
aspiring |
|
Темы:
32
Сообщения:
152
Участник с: 12 октября 2011
|
indeviral спасибо! работает!не пойму почему не работает
|