У меня сейчас запущен 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
должно быть то, что ты знать в командной строке. Путь полезен, если вы его так назвали, в противном случае просто используйте имя.