как сохранить скрипт запущенным после завершения сеанса терминала - PullRequest
0 голосов
/ 05 ноября 2019

я пытаюсь автоматически запускать двоичные файлы на устройстве aarch64 через оболочку adb, используя самописный скрипт bash

Итак, у меня есть устройство на centos и устройство aarch64 linux. У меня есть скрипт, который подключается к aarch64 через adb и запускает другой скрипт (x.sh) на нем. Затем запущенный скрипт (x.sh) (в цикле) вызывает ps axu и проверяет, запущены ли некоторые определенные процессы. Если они не работают, то вызывает нужные процессы. На самом деле есть 3 определенных процесса, которые он проверяет, два из них являются двоичными файлами, и один из них является другим скриптом (который выполняет некоторую работу с файлами txt и после вызова другого двоичного файла). Проблема заключается в следующем: когда я подключаюсь через оболочку adb и вызываю x. sh & hand, все работает нормально, но когда я использую скрипт bash для подключения через adb и вызываю x.sh автоматически, после закрытия сеанса терминала adb shell процесс x.sh умирает, а также все процессы, вызываемые x.shи мертвыВ моем busybox у меня есть nohup. Так что я попробовал >>> busybox nohup x.sh это не дает результата. После выхода из сеанса оболочки adb x.sh и все дочерние процессы мертвы. Я попытался поместить nohup в скрипт x.sh, но он не работает. Является ли «экран» единственным выбором в моей ситуации, или я делаю что-то не так? Может ли быть проблема в том, что мой busybox предназначен для arm5? (Несмотря на то, что он хорошо справляется с другими задачами) Пожалуйста, Гуру, я зову на помощь!

Launcher -

#!/bin/bash
example_launcher () {
adb connect 42.42.42.42
sleep 1
/path/x.sh &
}

, затем x.sh -

#!/bin/bash
nohup /some/binary
nohup /some/script

ТАКЖЕ попробовал

Launcher равен

#!/bin/bash
example_launcher () {
adb connect 42.42.42.42
sleep 1
nohup /path/x.sh

, тогда x.sh равен

#!/bin/bash
/some/binary
/some/script

x.sh также имеет некоторый другой код, который вызывает те же двоичные файлы, если они умирают

Когда я выполняю те же действия вручную без запуска, все работает, но когда я пытаюсь автоматизировать ADB-соединение, все это не дает результатов, я ожидаю, что nohup сработает, я ожидаю вызвать nohup x.sh, чтобы x.shне умирает после завершения сеанса терминала и продолжает вызывать другие необходимые двоичные файлы и сценарии. Спасибо!

...