2015-05-31 5 views
0

Недавно я сделал тест, чтобы узнать, прекратит ли скрипт PHP, даже если я отключусь. Ответ был нет, сценарий все еще запущен и затопляет мою базу данных. Это сценарий while(true), так что вы, ребята, знаете, как остановить его?Как остановить скрипт PHP навсегда?

Это не на выделенном сервере, что у меня есть доступ ... У меня только FTP, SSH, доступ к MySQL

Я уже пытался переименовать имя файла, который был выполнен, но он все еще работает

+2

Итак, вы вызываете скрипт из командной строки или как веб-страницу? В последнем случае сценарий, скорее всего, будет убит через 30 секунд. Для сценария командной строки вам, возможно, придется самому убить процесс или перезагрузить сервер, если у вас есть права на любой из них. Изменение паролей или переименование скрипта не будет иметь большого смысла, поскольку скрипт уже запущен (в памяти) и уже подключен к базе данных. Вам понадобится грубая сила. – GolezTrol

+0

Как насчет перезапуска Apache? – D4V1D

+0

Чтобы уточнить, когда процесс выполняется, исходный скрипт больше не связан с ним (почему переименование ничего не сделало). Я согласен, вам, возможно, придется перезагрузить сервер, но мне пришло в голову, что вы можете переименовать таблицу в своей базе данных, создав тем самым ошибку в вашем скрипте ... но это было бы ужасно плохой практикой! Было бы гораздо лучше не писать бесконечный цикл или тестировать его на сервере, который вы контролируете, прежде чем выпускать его на сервер, который вы не можете контролировать. –

ответ

1

Попробуйте получить список всех процессов через SSH с помощью

ps -ax 

и найти процесс вашего сценария. Если вы обнаружите этот процесс, вы можете убить его с помощью

kill %pid 

где% pid - идентификатор процесса из таблицы процессов.

Смежные вопросы