Назад | Перейти на главную страницу

Как выйти из бесконечного цикла, вызванного запуском PHP-скрипта от имени пользователя root?

У меня сейчас запущен PHP-скрипт с правами root, который начинается со следующих строк:

set_time_limit(0);
ini_set('log_errors', 1);
ini_set('error_log', "log.txt");

Он был случайно запущен веб-панелью управления от пользователя root как задача cron. Прямо сейчас скрипт пишет предупреждения, вызванные чем-то вроде этого while(!feof($file_handle)) в файл, увеличив его размер на 10 мегабайт в секунду.

У меня нет корневого доступа к сайту с консоли, владелец сервера недоступен из-за разницы во времени. Я могу запускать команды от имени root только один раз в минуту, используя cron из веб-панели (как вы понимаете, вывода нет).

Как я могу сделать так, чтобы мой скрипт не тратил ресурсы системы впустую? Сейчас я удаляю файл каждую минуту одним и тем же скриптом cron, чтобы сервер мог продолжить работу. К сожалению, моих знаний о Linux недостаточно, чтобы решить эту проблему без посторонней помощи.

Если команда была выполнена как что-то вроде php /path/to/script.php, тогда вы можете сделать что-нибудь вроде

pkill -f /path/to/script.php

или:

kill <pid>

где <pid> это идентификатор процесса, который вы хотите убить.

Вы также можете получить pid и выполненную строку процесса с помощью:

pgrep -fl /path/to/script.php

НОТА: аргумент pkill и pgrep должно быть то, что ты знать в командной строке. Путь полезен, если вы его так назвали, в противном случае просто используйте имя.