Как запустить на сервере PHP скрипт, который будет работать после закрытия браузера? Можно ли вообще такое сделать? У меня есть шеллы к некоторым сайтам, пытался там запустить скрипт. Скрипт выводил время в тхт документ. Запустил, закрыл браузер - работает. Проработал скрипт аж 1:30 мин, дольше не работает. Мне же нужно организовать постоянную работу скрипта. Можно ли как-то обойти этот предел? Везде ли стоит такого рода ограничение на длительность работы скрипта?
Время работы скрипта озвучена в php.ini - переменная max_execution_time. Можно попробовать увеличить зациклив set_time_limit() или ini_set() если у php отключен безопасный режим.
ini_set() уже ставил, писал так: PHP: ini_set("max_execution_time", "99999"); В любом случае скрипт останавливался после 150 секунд, не всегда есть доступ к php.ini, но иногда это меня выручит. Спасибо за совет. С другими серверами, где нет доступа к php.ini никак нельзя решить проблему?
В свое время закачивал perl скрипт через PHP shell и запускал как фоновый процесс. Perl скрипт представлял из себя TCP сервер (который изначально делал fork) на одного клиента с логином, паролем и исполнял команды с правами, под которыми был запущен... PHP создан для того что бы умирать - http://habrahabr.ru/post/179399/, используй "более системные" языки типа Perl/Python и запускай их отдельным потоком. Все это дело естественно палится и открытые порты могут быть закрыты фаерволом, это сейчас я понимаю как можно было накоидть туннель и замутить крутой бекдор, но раньше подобная шняка на бразильских сервера могла работать около месяца, на более нормальных хостингах держалась от дня до недели... В свое время писал скриптос на Perl небольшой парсер гугла с поиском сайтов с уязвимым PHPbb форумом - проверка на сплоит - закачка туда через wget или fetch скрипта установщика 3proxy (там настройки были и запуск в потоке отдельном) и о результатах в лог. Запустил подождал 20 минут и у тебя списочек нулевых прокси без логов Дня их работы было вполне достаточно. Эх были времена....
Cron, на сколько мне известно, запускает программы в определенное время. Не совсем понял, зачем он нужен в моей ситуации, если же мне не нужно запускать скрипт в какой-то период, а нужно запустить его лишь 1 раз, но чтобы он не выключался. Gar|k, ты закачивал perl скрипт, но у меня пхп скрит. С perl'ом я не знаком. Твое решение как я понял мне не подойдет. Как быть? Скрипт нужно запустить как-то, какие у меня есть варианты? Раньше видел на серверах разного рода постоянно работающие скрипты. Все дело в том, что в php.ini не стояло ограничение на время работы скрипта?
ignore_user_abort(1); // Игнорировать обрыв связи с браузером Это я уже использовал в своем скрипте. Скрипт останавливается не из-за закрытия браузера, он останавливается, потому что стоит лимит времени на выполнение скрипта, который мне и нужно обойти каким-то образом. В статье на хабре писали в комментариях: Теперь собственно вопрос: Как это сделать? У меня имеется шелл на сайте, имеется доступ к файлам. Как мне запустить скрипт из консоли? Никогда такого не делал. Действительно ли сейчас это актуально? То есть, если я запущу скрипт из консоли он будет работать без ограничения времени? Как-то даже не верится...
Оказалось, что скрипт все-таки выключается через 999 секунд работы. Получается на скрипты, запущенные из консоли тоже ставится ограничение?