2011-06-27 33 views
9

Tengo este test.js ejecutándose en Node.js bajo CentOS 5. Funciona perfectamente. El problema es que no se detendrá. Incluso después de cerrar mi cliente ssh, no se detendrá.Se ejecuta la secuencia de comandos Node.js, pero no se detiene.

¿Cómo puedo detener una secuencia de comandos en ejecución?

+0

'killall name_of_script' –

+0

Como se indica en la respuesta, el problema era' pantalla'. – Kriem

Respuesta

16

no

$ pkill node 

trabajo para usted?

+0

Pff, lo hizo. No estoy seguro de lo que salió mal. ¡Gracias! :) – Kriem

+0

El problema fue la pantalla. Vamos a ejecutar el script. – Kriem

12

¿Cuál es el código de su funcionamiento, si es el código de ejemplo proporcionado por la primera plana del nodejs.net entonces cuando su en su terminal y el servidor se está ejecutando, puede simplemente pulse CTRL + C para detener la tarea actual

Si usted tiene más de SSH y desea emitir un comando para detener los procesos de los nodos y luego hacer algo así:

$ ps aux | grep node 
USR PID 1.5 0.2 44172 8260 pts/2 S 15:25 0:00 node app.js 
$ kill -2 PID 

eso es sólo la búsqueda de la década de los PID de los procesos de los nodos y luego matar

+0

Es un mini servidor que produce algunos html. Pero lo comencé a través de mi cliente ssh. – Kriem

5

A veces, la solución al problema es asegurarse de que el trabajo en el que está trabajando el proceso de nodo haya finalizado. De esa forma las cosas terminan bien, y no corre el riesgo de matar lo que no debería ser. Depure su código y siga la pila de llamadas para descubrir qué está pasando.

Tener que matar procesos de nodo es una señal de que no está haciendo algo bien.

Tuve este problema hace un tiempo, y se suponía que el proceso se detendría, pero por alguna razón no fue así. Después de mucho dolor de insertar los registros de consola para encontrar la función que estaba pendiente sin fin, y node debug ing ...

exports.something = require('./something') 

mezcla que quedaba alrededor. Incluí un control de que el archivo se estaba utilizando como un módulo, y que parecía hacer el truco.

if (require.main !== module) { 
    exports.something = require('./something') 
} 

El archivo ya no se queda sin hacer nada.

Cuestiones relacionadas