IP-адрес, который нужно дождаться

TARGET_IP="192.168.174.1"

Интервал проверки в секундах

INTERVAL=5

Максимальное время ожидания в секундах (0 = бесконечно)

TIMEOUT=0

Программы для запуска после успешного пинга

COMMANDS=(
"pidgin"
"firefox"
"thunderbird"

Добавь сюда свои команды, по одной на строку

)

echo "Ожидание доступности $TARGET_IP..."

elapsed=0
while ! ping -c 1 -W 1 "$TARGET_IP" > /dev/null 2>&1; do
echo "[$elapsed сек] $TARGET_IP недоступен, ждём $INTERVAL сек..."
sleep "$INTERVAL"
((elapsed += INTERVAL))

Проверка таймаута

if [ "$TIMEOUT" -gt 0 ] && [ "$elapsed" -ge "$TIMEOUT" ]; then
echo "Ошибка: Таймаут ожидания ($TIMEOUT сек). Выход."
exit 1
fi
done

echo "$TARGET_IP доступен! Запускаем программы..."

Запуск всех команд в фоне

for cmd in "${COMMANDS[@]}"; do
if command -v "${cmd%% *}" > /dev/null 2>&1; then
echo "Запускаем: $cmd"
$cmd &
else
echo "Предупреждение: Команда '$cmd' не найдена, пропускаем."
fi
done

echo "Все программы запущены."

[file-name 000282_2025-11-08_08-38-15.txt]