Если IP активен - то приходит вполне нормальный и быстрый ответ. Если адрес будет неактивен, то может прийти ответ, что время ожидания истекло (стандартный ответ пинга), а может полностью зависнуть сессия в браузере (в других вкладках этот же ресурс перестаёт работать). Помогает либо - открытие другого браузера, либо перезапуск веб-сервера.
По результатам исследований было выяснено, что вероятная проблема - это "exec" - ей ping, в случае когда IP не отвечает - может не возвращать ответ вовсе. В итоге - exec продолжает ждать ответ и "не отпускает" сессию.
Проблема носит "хаотичный" характер. На некоторых серверах, где работает этот скрипт может проявляться, а на некоторых нет. При этом зачастую ОС сервера роли не играет. Windows, Linux, FreeBSD. Где-то работает, где-то нет.
Пробовали запихнуть скрипт пингования в отдельный аякс-фрейм. Не помогает, т.к. опять же - вешается сессия.
"Специфические" библиотеки для пинга - не подходят, т.к. требуется обеспечить работу на разных серверных ОС
Какие есть мысли - что можно предпринять? Спасибо.
Непосредственно про "зависание" сессии - сессии используют блокирующий механизм допуска. Отпустите сессию и она не будет блокировать открытие другие страниц: php.net/manual/en/function.session-write-close.php
Команда для разных ОС одинаковая? Насколько мне известно, единичные значения параметра -w в windows и linux различны (миллисекунда и секунда соответственно).
Какие есть мысли - что можно предпринять?
Если команда одна и та же для разных ОС, то значение таймаута для linux-варианта предлагаю скорректировать.