Как убить веб-процесс - PullRequest
       3

Как убить веб-процесс

0 голосов
/ 20 декабря 2010

У меня есть веб-скрипт, который запускается очень долго (и это должно занять много времени). Под «веб-сценарием» я подразумеваю сценарий, который выполняется путем посещения страницы в браузере, а не выполняется в командной строке. Сценарий написан на PHP, и я в стеке LAMP.

Как я могу найти и убить этот процесс, если я хочу?

«Убить» может быть неправильным словом. Я просто хочу остановить сценарий. Я мог бы предположить, что этот сценарий «наблюдает» за изменением состояния моей системы, а затем останавливается, когда замечает это изменение. Если я сделаю это, я не уверен, что будет лучшим способом сделать это. В любом случае, я полностью открыт для любых предложений.

Ответы [ 2 ]

3 голосов
/ 20 декабря 2010

Когда скрипт запускается, запишите его pid в файл, что-то вроде

 file_put_contents(getmypid ().".pid","Running");

И когда скрипт будет выполнен, он удалит файл.

Затем вы создадите другой скриптбудет работать в форме cron.Он ищет pid-файлы старше определенного возраста и делает на них kill $pid

Simple.

0 голосов
/ 20 декабря 2010

Вы просто переходите на веб-страницу сценария, т. Е. Www.mysite.com/mywebscript.php или запускаете сценарий с другой страницы?Я бы предложил использовать system () или что-то подобное, чтобы вы могли посмотреть идентификатор процесса на вашей Linux-платформе.Хотя кто-то, вероятно, собирается отказаться от моей системы упоминаний ()

Кроме того, вы можете использовать поток в своем скрипте.Вы можете заставить его выполнять что угодно, и одновременно принимать входные данные, и просто отправлять команду, чтобы убить его всякий раз.

...