Why does my node app process keep getting stopped when I use forever?

20,353

Solution 1

I was able to resolve my problem thanks to this answer on a similar question: https://stackoverflow.com/a/24914916/1791634

The process kept running when I used forever start ./bin/www instead of passing app.js

It remains to be seen whether this causes any trouble down the road.

Solution 2

I'm guessing the process stops after you disconnect from ssh?

Try running forever with nohup first.

nohup forever start app.js

When you disconnect from ssh the server kills all your shell's child processes. nohup disconnects a process from its parent shell.

Solution 3

For me, I had to use "sudo forever" for it to work.

Share:
20,353
Brandon
Author by

Brandon

Updated on July 09, 2022

Comments

  • Brandon
    Brandon almost 2 years

    On a free-tier Amazon EC2 instance, I set up a simple node.js Hello World app running on express.

    If I run npm start, my app runs fine and I can hit it from my browser, and I see the following output:

    > [email protected] start /home/ec2-user/app
    > node ./bin/www
    

    I have installed the forever tool globally. When I run forever start app.js, I see:

    warn:    --minUptime not set. Defaulting to: 1000ms
    warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
    info:    Forever processing file: app/app.js
    

    However, when I check forever list, I see that the process has stopped:

    info:    Forever processes running
    data:        uid  command             script forever pid  id logfile                          uptime  
    data:    [0] 2v0J /usr/local/bin/node app.js 2455    2457    /home/ec2-user/.forever/2v0J.log STOPPED 
    

    This is the only message in the log: error: Forever detected script was killed by signal: null

    I'm unable to find any other log information. Why does it keep immediately stopping?

    EDIT: I tried running it as nohup forever start app.js and got the same problem. I'm running the forever start and the forever list in the same ssh session, one after the other. The app's process seems to stop immediately.

  • Brandon
    Brandon over 9 years
    I'm running forever start app.js and forever list in the same ssh session, and it is always immediately stopped. I just tried running it as nohup forever start app.js and got the same result: the forever process was stopped as soon as I checked it.
  • Daniel
    Daniel over 9 years
    Check the log file. Is your node process dying from a script error?
  • Brandon
    Brandon over 9 years
    If I check the logfile shown in forever list, all I see is the error listed in the above question. Is there another log file I can check?
  • Roberto14
    Roberto14 almost 8 years
    I believe & it's missing on nohup command.. ie: nohup forever start app.js &
  • suku
    suku about 7 years
    why should they even allow forever ./bin/www if the objective to use forever is achieved only if forever start ./bin/www is used
  • Diptox
    Diptox about 7 years
    without the start , you can see the log on the SSH console
  • Gherman
    Gherman over 6 years
    But why do I forever myscript.js if I can just node myscript.js without using forever?
  • Hbas
    Hbas over 5 years
    You have to invoke "forever start <your_script_file.js>". In your case (as seen when you do npm start) the file is located at ./bin/www , not at "app.js". Regards