2010-10-14 21 views
5

Creé un script php que tiene ignore_user_abort (true); en él, y se ejecuta en un bucle infinito ... Cerré la página web, el servidor apache y el navegador también ... Ahora funciona como un armageddon ... Nada parece detenerlo ... ¿cómo lo detengo? ¿Cómo se ejecuta (nombre del proceso) en Windows? Busqué términos relacionados con php o servidor o navegador ... nada parece golpear ...cómo matar el hilo php de fondo?

¿Cómo puedo "matar" el proceso ahora?

+0

por cierto, la respuesta aceptada en esto: http://stackoverflow.com/questions/265073/php-background-processes sugiere que él había estado en esta posición, amigo, si estás cerca, ¿cómo podemos resolver esto? – Shrinath

+0

¿Cómo sabes que el script todavía se está ejecutando? Si detuvo el proceso de Apache (httpd), entonces el script debería haberse detenido también. – Mchl

+0

está actualizando el archivo de registro (básicamente un archivo de texto) ... Puedo ver el registro usando un proceso diferente. así que sé que todavía se está ejecutando ... – Shrinath

Respuesta

9

http://www.mywebref.com/Code_Helper/pages/40.html parece explicar esto muy bien.

  1. SSH en el servidor
  2. Type en ps x
  3. Ver la lista de procesos actualmente en el servidor
  4. obtener el PID (identificador de proceso) de esa lista y escriba kill xxxxx

Eso debería hacerlo.

Gracias al chico que publicó eso por cierto. Ahora lo sé también. :)

+2

¡Solo para aclarar el 'xxxxx' de arriba está el PID! También sugiero usar kill -9 xxxxx –

+1

Solo para aclarar: todo lo anterior se aplica a linux – Mchl

+0

De nada :) he he :) De todos modos, no soy el administrador en el servidor, y no tengo privilegios .. Logré hacerlo reiniciando el servidor mysql al que el proceso estaba accediendo :) – Shrinath

1

Con referencia a la respuesta por etbal, esto está bien, siempre y cuando el proceso no está generando continuamente otros procesos debido a algún error en su lógica de programación (que me ha pasado :().

Entonces puede intentar

  1. SSH en el servidor
  2. Type en pkill -u uuuuu

donde uuuu es su nombre de usuario SSH. Eso debería matar a todos los procesos pertenecientes a tú. En mi caso particular, el archivo que causaba el problema siguió llamándose a sí mismo, tuvo que ser renombrado para que no pudiera llamarse a sí mismo nuevamente, y luego se emitió un pkill.

Cuestiones relacionadas