Como quebrar de loop infinito, causado por script PHP em execução como root?

4

Eu tenho script PHP em execução agora com permissões de root que começam nas seguintes linhas:

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

Foi iniciado acidentalmente pelo painel de gerenciamento da web do usuário root como tarefa Cron. Agora o script está escrevendo avisos causados por algo como esse while(!feof($file_handle)) para o arquivo, aumentando seu tamanho em 10 megabytes por segundo.

Eu não tenho acesso root do console ao site, o proprietário do servidor não está disponível devido à diferença de horário. Eu só posso executar comandos como root, uma vez por minuto, usando o cron do painel web (sem saída como você entende).

Como posso impedir que meu script desperdice recursos do sistema? Agora eu apago arquivo a cada minuto com o mesmo script cron, então o servidor pode continuar trabalhando. Meu conhecimento de linux não é suficiente para resolver este problema sem ajuda, infelizmente.

    
por Galichev Anton 01.02.2011 / 02:58

1 resposta

5

Se o comando foi executado como algo como php /path/to/script.php , você poderia fazer algo como

pkill -f /path/to/script.php

ou:

kill <pid>

em que <pid> é o ID do processo em execução que você deseja matar.

Você também pode obter a linha pid e executada do processo com:

pgrep -fl /path/to/script.php

OBSERVAÇÃO : o argumento para pkill e pgrep deve ser algo que você sabe que está na linha de comando . O caminho é útil se você o chamar dessa maneira, caso contrário, basta usar o nome.

    
por 01.02.2011 / 03:09

Tags