Убить запуск PHP-скрипта через идентификатор процесса?

Я делаю много GET-запросов к нескольким PHP-скриптам через AJAX. Я хочу попросить совета по реализации о том, как убить PHP-скрипт, который в данный момент работает (в фоновом режиме).

Есть ли способ получить идентификатор процесса PHP-скриптов, когда он запускается, и тогда я, вероятно, смогу убить этот процесс через оболочку/cmd и т. д.?

Есть ли способ лучше?


person Abs    schedule 06.12.2009    source источник
comment
Какая ОС? Винда, Юникс?   -  person Kev    schedule 06.12.2009
comment
В настоящее время Windows — было бы здорово иметь портативное решение. Если нет, то только Windows.   -  person Abs    schedule 06.12.2009


Ответы (2)


Является ли PHP самостоятельным процессом, будет зависеть от того, как настроены PHP и веб-сервер. Но даже если это так, будет очень сложно поймать правильный процесс PHP, чтобы убить его.

Если внутри вашего PHP-скрипта вы знаете, что этот процесс нужно убить, вы можете использовать getmypid() или найти там что-нибудь в примечаниях пользователей.

Я до сих пор не совсем понимаю ситуацию. Зачем вообще нужно их убивать?

person Pekka    schedule 06.12.2009
comment
Скажем, запущен очень долгий процесс (несколько часов) - и вы помните, что неправильно установили переменные конфигурации, тогда будет удобно убить этот процесс, что в моем случае включает в себя уничтожение всех PHP-скриптов, всех экземпляров SQL Server, других внешние программы и т.д. - person Abs; 06.12.2009
comment
Вы правы, это может быть проблемой для меня, поскольку я запускаю PHP как модуль Apache - просмотрев свой список задач, я вижу только запущенный httpd.exe. - person Abs; 06.12.2009
comment
Перезапуск сервера не поможет? Может быть, вам подойдет настройка одной или нескольких виртуальных машин, которые можно перезапускать независимо друг от друга? - person Pekka; 07.12.2009
comment
Я думаю, что это может быть единственным решением для меня. Спасибо Пекка! :) - person Abs; 07.12.2009

Я не совсем понял, что вы пытаетесь сделать, но я думаю, что вы, возможно, достигли той части веб-стека, которая является тупиковой. Если вы делаете много запросов ajax, вы определенно убьете свой сервер, потому что он не может обрабатывать «бесконечное» количество подключений.

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

person FlorianH    schedule 06.12.2009
comment
Я делаю только 5/6 запросов AJAX и одновременно запускаю около 5/6 сценариев. Это не количество одновременно запущенных PHP-скриптов! - person Abs; 07.12.2009