Время ожидания / неблокирования adb для устройств?
Есть ли способ получить тайм-аут при вызове "adb wait-for-devices"?
Сценарий:
adb reboot
adb wait-for-devices (timeout listed here - if possible)
**if times out: echo timed out**
**else**
adb root
adb wait-for-devices
2 ответа
Решение
Цель этого вопроса была для автоматизации, поэтому я нашел временное решение с помощью функции будильника в Perl:
sub ADB_Wait_Timeout
{
eval
{
local $SIG{ALRM} = sub { die "Timeout\n" };
alarm 60;
system("adb wait-for-devices");
alarm 0;
};
if ($@)
{
print "Device did not come up\n";
}
}
Есть аналогичные ответы о том, как делать системные вызовы с таймаутом: /questions/19188844/kak-ya-mogu-zavershit-sistemnuyu-komandu-s-trevogoj-v-perl/19188848#19188848
В Баше
timeout <time_in_seconds> adb wait-for-any-device
Пример: Команда ниже ожидает 40 секунд для поиска устройств adb и возвращает код завершения команды, в случае успеха или 124 в случае тайм-аута, или код завершения команды в случае сбоя команды.
timeout 40 adb wait-for-any-device