¿Cómo detener la aplicación Node.js usando el módulo forever en Windows?

6 minutos de lectura

avatar de usuario
Satyendra Fauzdar

He pasado por muchas preguntas sobre el módulo forever para la aplicación nodejs, pero no encontré mi respuesta.

Forever El módulo funciona bien en una caja de Linux, pero ahora estoy poniendo mi aplicación en Windows 7 y tratando de ejecutarla para siempre. Primero instalé el módulo para siempre como

npm install forever -g

después de eso ejecuté mi aplicación como

forever start app.js

funciona bien al decir que el archivo app.js se ejecuta para siempre y estoy accediendo a mi aplicación con éxito.

Cuando ejecuto un comando forever stop app.js me sale el error

no se está ejecutando ningún archivo para siempre

Sugiérame si alguien ha usado para siempre en Windows cómo puedo detener mi aplicación en Windows.

  • Sugiero ejecutar su aplicación Node.js como un servicio. Verificar nssm.cc. También hay paquetes NPM para este propósito.

    – brad

    6 de agosto de 2013 a las 19:57

  • Probar forever stopall comando, puede funcionar

    – silpa

    29 de julio de 2016 a las 2:09


avatar de usuario
laktak

usar forever list
entonces deténgase para siempre con la identificación, por ejemplo forever stop 0

Aquí hay una salida de muestra

[email protected]]$ forever list
info:    Forever processes running
data:        uid  command                                                  script forever pid   id logfile                          uptime        
data:    [0] 9Xzw ng serve --host 0.0.0.0 --port 4009         13164   29579    /home/ec2-user/.forever/9Xzw.log 7:1:20:50.412 
data:    [1] wOj1 npm run-script app-start-dev                                    29500   24978    /home/ec2-user/.forever/wOj1.log 0:0:5:3.433

Aquí 0 es como un índice que está en la primera columna de la salida. Si hay dos procesos en ejecución, podemos usar índices como 0 o 1 para detener el primer o el segundo proceso.

forever stop 0 O forever stop 1

Tuve este mismo problema y descubrí que era porque estaba ejecutando forever start con sudo (en Linux) para poder ejecutar un sitio de producción en el puerto 80. Esto funcionó:

sudo forever list

avatar de usuario
delliottg

Esto es solo para ampliar la respuesta de @laktak. El resultado de forever list en Windows se verá algo como esto:

info:    Forever processes running
data:        uid  command              script                          forever p
id   id logfile                               uptime
data:    [0] an1b "C:\nodejs\node.exe" C:\sbSerialWidget\server.js 8780    1
0152    C:\Users\username\.forever\an1b.log STOPPED

No estaba seguro de cuál era la identificación inicialmente, pero descubrí que era la primera entrada después de la segunda data campo anterior, por lo que la línea que le interesa tiene el ID en negrita y cursiva:

datos: [0] an1b C:\nodejs\node.exe C:\sbSerialWidget\server.js 8780 1 0152 C:\Users\username.forever\an1b.log DETENIDO

Entonces, para detener esta instancia en particular, ejecutaría:

forever stop 0

Espero que esto ayude a alguien más que estaba confundido como yo

  • Sí, esto fue confuso. El documento dice que puede pasar por id, pid, script, pero solo el [0] parece funcionar

    – Velocidad de Ronda

    11 de febrero de 2019 a las 18:13

avatar de usuario
Ilya Zaytsev

es un error en windows https://github.com/nodejitsu/forever/issues/337
Si necesita detener su aplicación, simplemente abra el administrador de tareas y busque el proceso node.js y elimínelo. Duro pero trabajo.

detener para siempre 0

donde el 0 es el índice de su aplicación en ejecución, si solo tiene una, también lo es 0.

avatar de usuario
Ankit Kumar Rajpoot

Puede seguir los documentos de forever, hay todos los comandos relacionados con forever.

Siempre

 $ forever --help
      usage: forever [action] [options] SCRIPT [script-options]
    
      Monitors the script specified in the current process or as a daemon
    
      actions:
        start               Start SCRIPT as a daemon
        stop                Stop the daemon SCRIPT by Id|Uid|Pid|Index|Script
        stopall             Stop all running forever scripts
        restart             Restart the daemon SCRIPT
        restartall          Restart all running forever scripts
        list                List all running forever scripts
        config              Lists all forever user configuration
        set <key> <val>     Sets the specified forever config <key>
        clear <key>         Clears the specified forever config <key>
        logs                Lists log files for all forever processes
        logs <script|index> Tails the logs for <script|index>
        columns add <col>   Adds the specified column to the output in `forever list`. Supported columns: 'uid', 'command', 'script', 'forever', 'pid', 'id', 'logfile', 'uptime'
        columns rm <col>    Removed the specified column from the output in `forever list`
        columns set <cols>  Set all columns for the output in `forever list`
        cleanlogs           [CAREFUL] Deletes all historical forever log files

  options:
    -m  MAX          Only run the specified script MAX times
    -l  LOGFILE      Logs the forever output to LOGFILE
    -o  OUTFILE      Logs stdout from child script to OUTFILE
    -e  ERRFILE      Logs stderr from child script to ERRFILE
    -p  PATH         Base path for all forever related files (pid files, etc.)
    -c  COMMAND      COMMAND to execute (defaults to node)
    -a, --append     Append logs
    -f, --fifo       Stream logs to stdout
    -n, --number     Number of log lines to print
    --pidFile        The pid file
    --uid            DEPRECATED. Process uid, useful as a namespace for processes (must wrap in a string)
                     e.g. forever start --uid "production" app.js
                         forever stop production
    --id             DEPRECATED. Process id, similar to uid, useful as a namespace for processes (must wrap in a string)
                     e.g. forever start --id "test" app.js
                         forever stop test
    --sourceDir      The source directory for which SCRIPT is relative to
    --workingDir     The working directory in which SCRIPT will execute
    --minUptime      Minimum uptime (millis) for a script to not be considered "spinning"
    --spinSleepTime  Time to wait (millis) between launches of a spinning script.
    --colors         --no-colors will disable output coloring
    --plain          Disable command line colors
    -d, --debug      Forces forever to log debug output
    -v, --verbose    Turns on the verbose messages from Forever
    -s, --silent     Run the child script silencing stdout and stderr
    -w, --watch      Watch for file changes
    --watchDirectory Top-level directory to watch from
    --watchIgnore    To ignore pattern when watch is enabled (multiple option is allowed)
    -t, --killTree   Kills the entire child process tree on `stop`
    --killSignal     Support exit signal customization (default is SIGKILL),
                     used for restarting script gracefully e.g. --killSignal=SIGTERM
                     Any console output generated after calling `forever stop/stopall` will not appear in the logs
    -h, --help       You're staring at it

  [Long Running Process]
    The forever process will continue to run outputting log messages to the console.
    ex. forever -o out.log -e err.log my-script.js

  [Daemon]
    The forever process will run as a daemon which will make the target process start
    in the background. This is extremely useful for remote starting simple node.js scripts
    without using nohup. It is recommended to run start with -o -l, & -e.
    ex. forever start -l forever.log -o out.log -e err.log my-daemon.js
        forever stop my-daemon.js

¿Ha sido útil esta solución?