Отложенный запуск скриптов на 4.2

Аватара пользователя
ZigZag
Сообщения: 286
Зарегистрирован: 28 окт 2015, 04:43

Сообщение ZigZag » 05 дек 2017, 14:41

На 4pda в соответствующей теме для решения проблемы с невыполнением (или слишком ранним выполнением) скриптов запускаемых через системный сервис (скрипт) был предложен костыль с until и getprop sys.boot_completed, только вот до 5-ки этого intent'a не было и как выкрутиться на более ранних андроидах непонятно :( Есть у кого какие мысли на этот счёт ?
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 05 дек 2017, 15:13

А если sleep добавить (число секунд подобрать)?

Аватара пользователя
Александр Рыжов
Сообщения: 447
Зарегистрирован: 12 авг 2015, 14:14
Откуда: Смоленск

Сообщение Александр Рыжов » 05 дек 2017, 16:28

Zyxmon, тогда это будет не event driven, а timeout driven действие, коих по возможности надо избегать.

Аватара пользователя
ZigZag
Сообщения: 286
Зарегистрирован: 28 окт 2015, 04:43

Сообщение ZigZag » 05 дек 2017, 18:59

Zyxmon писал(а):А если sleep добавить (число секунд подобрать)?
ну если добавить sleep, то там по моему затормозится всё что следует за инициализирующим системным скриптом (у меня это install-sercovery.sh) + sleep должен быть немаленьким. В until по крайней мере можно поставить небольшой таймаут + getprop sys.boot_completed и пусть себе долбится, пока значение интента не сменится.

Пока видится пара вариантов - найти ведроидную тулзу, которая позволяет подцепить shell-скрипт при запуске и через run-parts городить огород (по моему Tasker умеет подобное), либо затолкать в install-recovery.sh всё тот же until с небольшим таймаутом, но в качестве условия проверки выбрать что-то другое. К примеру наличие определённого процесса.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

Аватара пользователя
ZigZag
Сообщения: 286
Зарегистрирован: 28 окт 2015, 04:43

Сообщение ZigZag » 06 дек 2017, 07:10

В принципе вариант с Tasker'ом выгорел. Профиль Событие -> Система -> Загрузка окончена. Действие run shell + таймаут запуска 10 секунд (может позже подкручу в сторону уменьшения).

Из всего списка команд не запустился только socat, который натравлен на мониторинг определённого порта и выхлопом содержимого STDOUT в файл, ну да на досуге поразбираюсь, чем Tasker не устроил socat ...
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

kaztost
Сообщения: 223
Зарегистрирован: 17 июл 2017, 00:29

Сообщение kaztost » 07 дек 2017, 23:48

ZigZag писал(а):Источник цитаты был предложен костыль с until и getprop sys.boot_completed, только вот до 5-ки этого intent'a не было

Если совсем не хотите костылей: исправляйте init.rc в рамдиске, используя конструкцию on property. Вам тогда init сам все запустит, когда надо. Но таки это не intent, а свойство!

Для старых андроидов может сработать свойство dev.bootcomplete. Хоть в костыльном, хоть в бескостыльном вариантах.

Аватара пользователя
ZigZag
Сообщения: 286
Зарегистрирован: 28 окт 2015, 04:43

Сообщение ZigZag » 09 дек 2017, 22:52

Если совсем не хотите костылей: исправляйте init.rc в рамдиске, используя конструкцию on property.
Это трудно назвать "plug-n-play" решением, да и не настолько у меня прокачан скилл в этом плане.
Но таки это не intent, а свойство!
Не силён в нюансах ведра, так что могу местами ошибаться
Для старых андроидов может сработать свойство dev.bootcomplete. Хоть в костыльном, хоть в бескостыльном вариантах.
Спасибо :)

В getprop оно есть, так что на досуге попробую. Пока на отлично справляется Tasker (почти) :)
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

kaztost
Сообщения: 223
Зарегистрирован: 17 июл 2017, 00:29

Сообщение kaztost » 10 дек 2017, 01:13

ZigZag писал(а):Источник цитаты Это трудно назвать "plug-n-play"

В данном случае, правильного "plug-n-play" решения нет. Ну, кроме явного использования ява-машины.

Кстати, если вы на 4.2, у вас как, getprop нормально работает в ssh-сессии? Насколько я помню, в некоторых случаях dropbear удалял файловый дескриптор свойств и getprop переставал работать. Не замечали?

На новых версиях проблем с этим уже нет.

Аватара пользователя
ZigZag
Сообщения: 286
Зарегистрирован: 28 окт 2015, 04:43

Сообщение ZigZag » 10 дек 2017, 06:00

Кстати , если вы на 4.2, у вас как, getprop нормально работает в ssh-сессии? Насколько я помню, в некоторых случаях dropbear удалял файловый дескриптор свойств и getprop переставал работать. Не замечали?
Я хз, но как-то не довелось юзать dropbear из entware на том смарте. Юзаю sshdroid, там тот же dropbear + меньшее количество возни. Там с getprop проблем вроде не было, но могу проверить
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

Аватара пользователя
ZigZag
Сообщения: 286
Зарегистрирован: 28 окт 2015, 04:43

Сообщение ZigZag » 11 фев 2019, 09:48

Как выяснилось, у автозагрузки через tasker есть один минус - когда память андроида переполняется, он грохает tasker и вместе с ним паровозиком валятся запущенные им демоны. Радует, что это происходит крайне редко.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]


Вернуться в «Entware на Android»

Кто сейчас на конференции

Всего 3 посетителя :: 1 зарегистрированный, 0 скрытых и 2 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33

Сейчас этот форум просматривают: Bing [Bot] и 2 гостя