Я не сталкивался со случаями, чтобы скрипты зависали. Они могут либо выполняться, либо нет. Проверку на то, выполнился ли скрипт, можно добавить в последний описанный метод. Другой вопрос — проверка, выполнил ли скрипт то, что мы хотели или нет. У меня есть несколько решений, в ближайшие дни напишу об этом.
Чтоб скрипт выполнялся долго — достаточно дать ему большой объем данных. Так или иначе, бывает, что скрипт выполняется, условно, час.
И нас это не устраивает. Надо его прибить, допустим таймаут 5 минут, если больше — прибить скрипт и дальше адекватно обработать эту ситуацию.
Как это сделать?
Взаимодейтсвие Java и Shell-скриптов в Android