Альтернатива Nohup - запуск постоянных скриптов после закрытия adb

У меня возникла проблема с запуском сценариев (в фоновом режиме) через ADB на моем Mate 10 без рута после того, как телефон был отключен от сети.

Я пытался использовать команду nohup, которая всегда работала для меня с другими устройствами Android, но безрезультатно. Я знаю, что nohup защищает только от сигналов SIGHUP и SIGQUIT, поэтому устройство может отправлять другой сигнал, чтобы убить процесс.

Я также попытался создать дочернюю задачу, которая запускает скрипт, чтобы попытаться «скрыть» порожденный процесс, и попытался вызвать /system/bin/sh, чтобы создать оболочку внутри оболочки, которая также не удалась.

Есть ли у кого-нибудь идеи об альтернативах nohup для нерутированной ОС Android или какие-либо другие идеи о том, как решить эту проблему?

Редактировать: disown и screen отсутствуют в оболочке Mate 10, поэтому их нельзя использовать.


person Tex4066    schedule 06.11.2017    source источник


Ответы (1)


есть несколько вариантов:

отказаться

Вы можете комбинировать disown и &, чтобы отодвинуть ваш скрипт на задний план.

$ disown [your_command] &
[your_command] can be checked by the jobs command. Once typed you will 
$ jobs
[1]+ Running [your_command]

экран

Является виртуальным терминалом. Экран будет продолжать работать, даже если ваш сеанс будет отключен. При повторном подключении к серверу вы можете повторно подключиться к сеансу screen и все будет как ни в чем не бывало.

ссылка: руководство по экрану gnu

фоновая отправка

[your_command] &>/dev/null &

&>/dev/null перенаправляет весь вывод команды в черную дыру.

& запускает процесс в фоновом режиме.

person Christian Will    schedule 06.11.2017
comment
Спасибо за ответ. К сожалению, оболочка Mate 10 не включает команды disown или screen, поэтому я не включил их в свой исходный пост. Я отредактирую его, чтобы включить эту информацию. Фоновый толчок также не работает, так как он не ловит сигнал SIGHUP и закрывается при закрытии соединения ADB. - person Tex4066; 07.11.2017