Это может быть простой вопрос, но я довольно новичок в PHP, и мне трудно разобраться в этом.Итак, немного предыстории - мой скрипт вызывается из веб-приложения, которое позволяет пользователям запускать простые команды на удаленных компьютерах.Например, пользователь может щелкнуть кнопку, чтобы отследить файл журнала на удаленной машине, и он отобразит вывод для пользователя.Теперь, если есть проблема с подключением, и ssh не настроен должным образом на целевом сервере, он может просто зависнуть навсегда, и ssh не истечет.Чтобы отобразить для пользователя более точную ошибку, чем таймауты php или fastCGI, я хочу уничтожить скрипт и отобразить команду, которую пользователь выполнял до истечения тайм-аута.Для простоты, допустим, все мои тайм-ауты для IIS / FastCGI / PHP установлены на 5 минут.Я хочу установить таймер, когда сценарий запускается, и если прошло 4 минуты и 45 секунд, я хочу убить сценарий и отобразить сообщение об ошибке для пользователя, который отображает команду, которую он пытался выполнить, чтобы они могли устранить неполадкивручную.
В коде заглушки / псевдо для простого примера:
function StartTimer(){
//start timer
}
function RunComand($cmd, $timer, $timeMax){
//runs user command through ssh library and streams back output.
$output = sshLib($cmd);
//this is where i want to do my check on the timer. If run through ssh lib takes too long
//kill the script and return $cmd to display it to user.
if ($timer > $timeMax){
//kill script, output $cmd
}
return $output;
}
$cmd = $_GET['cmd'] //get users command
$timer = startTimer();
$timeMax = 285; //285 seconds is 4 min 45 seconds
$results = RunCommand($cmd, $timer, $timeMax);