потребовалось странное: на "смарт" тв запустить информационное табло. желательно предельно малой кровью. и как обычно надо еще вчера.

про сами устройства я упоминал ранее. усе грустно и печально. программы автоматизаторы а ля tasker не заработали от слова совсем. немного подумав пришел к выводу, что проще всего будет не рассчитывать на вумность зомбоящика и взять его на удаленное управление через открытый порт adb.

для "киоска" идеально подошел firefox в варианте для tv. его же надо выбирать как браузер по умолчанию

соответственно на внутреннем веб сервере поселился "жутко сложный" скрипт аж на 10 строк

#!/bin/bash
tv_info_table()
{
adb connect $1
sleep 1
android.intent.action.VIEW 'tablo_server/qwertyuioop.php'
adb disconnect $1
}

tv_info_table android_host_tv_tv


И внезапно оказалось что у нас все как в анекдоте "то света нет, то воды" и нужно узнавать что
1. хост упал
2. хост поднялся
ну и само собой
если хост упал то один раз выполнить полезную нагрузку
если хост поднялся то один раз выполнить полезную нагрузку

в итоге родился скрипт вида.
#!/bin/bash
remove_error_flag()
{
if [ -f tv-list/$1 ]
then
rm tv-list/$1
# todo: тут полезная нагрузка которая должна выполняться при включении хоста
fi
}

set_error_flag()
{
if [ ! -f tv-list/$1 ] then
echo date>tv-list/$1
# todo: тут полезная нагрузка которая должна выполняться при выключении хоста
fi
}

check_tv()
{
ping -c1 -w1 -q $1 >/dev/null && remove_error_flag $1 >/dev/null || set_error_flag $1 >/dev/null
# ping -c1 -w1 -q $1 - отослать один пинг. ждать ответа секунду. не выводить мусор
# && remove_error_flag пинг закончился успешно. выполнить remove_error_flag
#|| set_error_flag $1 хост не ответил на пинг и надо выполнять set_error_flag
}