2011-09-23 27 views
14

Tengo un simple bucle infinito for con este aspecto:detener un bucle infinito en un servidor remoto PHP

set_time_limit (0); 
for (;;) 
{ 
    ... //Doing some stuff including to write to a file 
    sleep(300); 
} 

Está funcionando en mi servidor. (Cuenta de alojamiento compartido)

¿Cómo demonios puedo detenerlo?

+1

Matar la línea de comando del proceso haría el truco. Corriendo en Linux? mira http://linux.about.com/library/cmd/blcmdl_kill.htm –

+0

¿Eliminar el archivo? – Mob

Respuesta

13

mata el proceso. suponiendo que se puede obtener acceso a la consola a través de ssh y el servidor se ejecuta en Linux:

ps -ef | grep php // to get a list of php-processes 

kill [process-id] // kill the process by process-id 
+0

¿Cómo crees que puedo acceder a través de SSH? El servidor es linux/Debian. – LouwHopley

+0

http://www.putty.org/ - simplemente descargue, ingrese los servidores dirección IP, su nombre de usuario y contraseña y: voilà! – oezi

+0

@oezi También tenía una secuencia de comandos en el servidor. Estoy hablando del servidor [Amazon ec2] (http://aws.amazon.com/ec2/). Para matar este script, use 'ps -x' y' sudo kill [proces_id] '. Solo digo ... :) –

1

Es posible que desee ponerse en contacto con su servicio de alojamiento y pedirles que matar a su guión. Lo más probable es que no tenga acceso de ejecución o acceso ssh. Tal vez deberías construir una posibilidad para salir de tu programa la próxima vez que crees un ciclo infinito.

+0

Buena idea para poner una forma de matarlo. Voy a poner un archivo para leer. Si lee "falso", muere. – LouwHopley

1

Inicié sesión a través de SSH e intenté eliminar el proceso, pero no pareció funcionar, posiblemente el proceso era incorrecto, ya que había bastantes.

Siempre puede reiniciar apache como último recurso; eso lo arreglará ;-)

Cuestiones relacionadas